相关性检验

在数据分析的广阔天地中,相关性检验是探索变量间关系的一把钥匙。本文将带领大家了解几种常用的相关性检验方法: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=(XiXˉ)2 (YiYˉ)2 (XiXˉ)(YiYˉ)

其中, 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=1n(n21)6di2

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=k21+2×n1(pipoverall)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} κ=1pepope

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(n1)2(number of concordant pairs)2(number of discordant pairs)

实例分析

实例数据

学生测试1测试2
A7882
B8580
C9088
D6065
E7075

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=((7876)2+...+(7076)2)((8279)2+...+(7579)2) (7876)(8279)+...+(7076)(7579)
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(51)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()

总结

通过上述分析,我们可以看到不同相关性检验方法如何揭示变量间的关系。每种方法都有其特定的应用场景和优势。选择合适的方法来分析你的数据,可以更准确地理解变量间的相互作用。

  • 24
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值