1. 皮尔逊相关(Pearson)显著性检验
检验方法:T检验(t-test)
-
皮尔逊相关系数的显著性检验,通常用t检验。
-
你用
scipy.stats.pearsonr
计算相关系数时,返回的p值就是t检验的结果。 -
也可以手动用公式:
t=rn−21−r2t = \frac{r \sqrt{n-2}}{\sqrt{1 - r^2}}t=1−r2 rn−2
其中 ( r ) 为相关系数,( n ) 为样本量,自由度为 ( n-2 )。
结论:皮尔逊相关系数的显著性检验用t检验。
2. 斯皮尔曼相关(Spearman)显著性检验
检验方法:精确分布法或近似t检验
- 斯皮尔曼相关系数的显著性检验,
scipy.stats.spearmanr
直接返回p值,底层是用精确分布法或近似t检验(大样本时)。 - 你只需看
spearmanr
返回的p值即可判断显著性。
结论 :斯皮尔曼相关系数的显著性检验直接用spearmanr
的p值即可。
3. 总结表
相关系数类型 | 显著性检验方法 | Python常用函数 | p值含义 |
---|---|---|---|
皮尔逊(Pearson) | t检验 | scipy.stats.pearsonr | 相关性是否显著 |
斯皮尔曼(Spearman) | 精确分布/近似t检验 | scipy.stats.spearmanr | 相关性是否显著 |
4. 代码举例
python
from scipy.stats import pearsonr, spearmanr
# 皮尔逊
r, p_pearson = pearsonr(df['X'], df['Y'])
print('皮尔逊相关系数:', r, 'p值:', p_pearson)
# 斯皮尔曼
rho, p_spearman = spearmanr(df['X'], df['Y'])
print('斯皮尔曼相关系数:', rho, 'p值:', p_spearman)
结论:
- 皮尔逊相关系数用t检验(pearsonr的p值)。
- 斯皮尔曼相关系数用精确分布法或近似t检验(spearmanr的p值)。
只需关注pearsonr
和spearmanr
返回的p值即可判断显著性,无需手动实现检验。