文章目录
在数据分析的广阔天地中,相关性检验是探索变量间关系的一把钥匙。本文将带领大家了解几种常用的相关性检验方法:Pearson、Spearman、Cochran’s Q、Kappa和Kendall。我们将深入每种方法的计算公式,并以几个实例,展示如何使用这些方法来计算相关性。
Pearson相关系数
Pearson相关系数是衡量两个连续变量线性相关程度的指标。其值介于-1到1之间,公式如下:
r Pearson = ∑ ( X i − X ˉ ) ( Y i − Y ˉ ) ∑ ( X i − X ˉ ) 2 ∑ ( Y i − Y ˉ ) 2 r_{\text{Pearson}} = \frac{\sum (X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum (X_i - \bar{X})^2}\sqrt{\sum (Y_i - \bar{Y})^2}} rPearson=∑(Xi−Xˉ)2 ∑(Yi−Yˉ)2 ∑(Xi−Xˉ)(Yi−Yˉ)
其中, X i X_i Xi 和 Y i Y_i Yi 是观测值, X ˉ \bar{X} Xˉ 和 Y ˉ \bar{Y} Yˉ 是它们的均值。
Spearman等级相关系数
Spearman等级相关系数适用于非参数数据,衡量两个变量的单调关系。计算公式如下:
r Spearman = 1 − 6 ∑ d i 2 n ( n 2 − 1 ) r_{\text{Spearman}} = 1 - \frac{6 \sum d_i^2}{n(n^2 - 1)} rSpearman=1−n(n2−1)6∑di2
d i d_i di 是排名差, n n n 是观测值数量。
Cochran’s Q检验
Cochran’s Q检验用于三个或更多个相关比例的差异性检验。其公式为:
Q = k − 1 2 + 1 2 × n ∑ ( p i − p overall ) 2 Q = k - \frac{1}{2} + \frac{1}{2 \times n} \sum (p_i - p_{\text{overall}})^2 Q=k−21+2×n1∑(pi−poverall)2
k k k 是比例的数量, p i p_i pi 是第 i i i 个比例, p overall p_{\text{overall}} poverall 是所有比例的平均值。
Kappa一致性系数
Kappa一致性系数用于衡量两个评估者在分类数据上的一致性。其计算公式如下:
κ = p o − p e 1 − p e \kappa = \frac{p_o - p_e}{1 - p_e} κ=1−pepo−pe
p o p_o po 是观察到的一致性比例, p e p_e pe 是偶然一致性的比例。
Kendall相关系数
Kendran的tau-b相关系数是衡量两个变量相关性的非参数方法。其计算公式如下:
τ b = 2 ( number of concordant pairs ) − 2 ( number of discordant pairs ) n ( n − 1 ) \tau_b = \frac{2(\text{number of concordant pairs}) - 2(\text{number of discordant pairs})}{n(n-1)} τb=n(n−1)2(number of concordant pairs)−2(number of discordant pairs)
实例分析
实例数据
学生 | 测试1 | 测试2 |
---|---|---|
A | 78 | 82 |
B | 85 | 80 |
C | 90 | 88 |
D | 60 | 65 |
E | 70 | 75 |
Pearson相关系数
X
ˉ
=
78
+
85
+
90
+
60
+
70
5
=
76
\bar{X} = \frac{78 + 85 + 90 + 60 + 70}{5} = 76
Xˉ=578+85+90+60+70=76
Y
ˉ
=
82
+
80
+
88
+
65
+
75
5
=
79
\bar{Y} = \frac{82 + 80 + 88 + 65 + 75}{5} = 79
Yˉ=582+80+88+65+75=79
r
Pearson
=
(
78
−
76
)
(
82
−
79
)
+
.
.
.
+
(
70
−
76
)
(
75
−
79
)
(
(
78
−
76
)
2
+
.
.
.
+
(
70
−
76
)
2
)
(
(
82
−
79
)
2
+
.
.
.
+
(
75
−
79
)
2
)
r_{\text{Pearson}} = \frac{(78-76)(82-79) + ... + (70-76)(75-79)}{\sqrt{((78-76)^2 + ... + (70-76)^2)((82-79)^2 + ... + (75-79)^2)}}
rPearson=((78−76)2+...+(70−76)2)((82−79)2+...+(75−79)2)
(78−76)(82−79)+...+(70−76)(75−79)
r
Pearson
=
0.967
r_{\text{Pearson}} = 0.967
rPearson=0.967(四舍五入到小数点后三位)
Spearman等级相关系数
等级分配:
- 测试1: A(3), B(5), C(5), D(1), E(2)
- 测试2: A(4), B(3), C(5), D(1), E(3)
计算
d
i
d_i
di并应用公式,我们得到:
r
Spearman
=
1
r_{\text{Spearman}} = 1
rSpearman=1(因为排名完全一致)
Kendall相关系数
计算一致对和不一致对的数量:
- 一致对:(A,B), (B,C), (C,E) - 3对
- 不一致对:(A,C), (A,D), (A,E), (B,D), (B,E), (D,E) - 6对
τ b = 2 ( 3 ) − 2 ( 6 ) 5 ( 5 − 1 ) = − 4 8 = − 0.5 \tau_b = \frac{2(3) - 2(6)}{5(5-1)} = -\frac{4}{8} = -0.5 τb=5(5−1)2(3)−2(6)=−84=−0.5(负相关)
Python代码
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy.stats import pearsonr, spearmanr
# 定义数据
data = {
'测试1': [78, 85, 90, 60, 70],
'测试2': [82, 80, 88, 65, 75]
}
# 创建DataFrame
df = pd.DataFrame(data)
# 计算Pearson和Spearman相关系数
pearson_corr, _ = pearsonr(df['测试1'], df['测试2'])
spearman_corr, _ = spearmanr(df['测试1'], df['测试2'])
# 创建相关性矩阵
corr_matrix = {
'测试1': [pearson_corr, spearman_corr],
'测试2': [spearman_corr, 1] # 假设测试1和测试2完全相关
}
# 创建DataFrame
corr_df = pd.DataFrame(corr_matrix, index=['测试1', '测试2'])
# 绘制热力图
sns.heatmap(corr_df, annot=True, cmap='coolwarm', fmt=".2f")
plt.title('相关性热力图')
plt.show()
总结
通过上述分析,我们可以看到不同相关性检验方法如何揭示变量间的关系。每种方法都有其特定的应用场景和优势。选择合适的方法来分析你的数据,可以更准确地理解变量间的相互作用。
标签:Spearman,Pearson,frac,相关系数,检验,76,相关性,79 From: https://blog.csdn.net/qq_57143062/article/details/141000341