相关系数在线计算:Pearson、Spearman 与 Kendall
Pearson、Spearman 与 Kendall 三种相关系数一次算出, 给出各自的 p 值、Pearson 的 95% 置信区间与 r²。
三个系数在测不同的东西
Pearson r 测的是线性关系的强度。它用的是原始数值, 所以对离群点很敏感,也只能捕捉直线关系。
Spearman ρ 先把数据换成秩,再算 Pearson。它测的是单调关系—— 只要「一个涨另一个也涨」就算,不要求成直线。
Kendall τ 直接数「同向的数对」与「反向的数对」, 比 Spearman 更稳健,小样本时分布性质更好,但计算量随 n 平方增长。
两个例子说明为什么要一起看
例一,单调但非线性。 x = 1…8,y = 2ˣ: Pearson 给出 0.850,Spearman 与 Kendall 都给出 1.000。 关系是完美单调的,Pearson 却因为它不是直线而低估了。
例二,一个离群点足以让符号反过来。 x = 1,2,…,10 而 y = 10,9,8,7,6,5,4,3,2,50: 除最后一点外 y 随 x 严格递减,但那一个 50 让 Pearson 给出 +0.358,Spearman 给出 −0.455——两者符号相反。 只看 Pearson 会得出完全错误的结论。
所以:三个一起看,差别大就说明数据有故事。 Pearson 远小于 Spearman 通常意味着关系是单调但弯曲的;两者符号相反几乎总是离群点造成的。
r² 的正确读法
r² 是「线性关系能解释的方差比例」,不是「正确率」。 r = 0.7 看起来很高,但 r² = 0.49,意味着还有一半的变异没被解释。 r = 0.5 时 r² 只有 0.25。相关系数的平方关系让人容易高估关联强度。
相关不等于因果,而且这句话还不够
除了「相关不蕴含因果」之外,还有两件事同样重要:
相关系数为 0 不等于无关。 它只说明没有线性(或单调)关系。 U 形关系的 Pearson r 可能正好是 0,但两个变量显然有关。
样本量大时,毫无实际意义的相关也会显著。 n = 1000 时 r = 0.07 就能给出 p < 0.05, 而它解释的方差只有 0.5%。看 p 值之前先看 r 和 r²。
置信区间
Pearson 的区间用 Fisher z 变换算:先把 r 变换到近似正态的尺度, 在那里算对称区间,再变换回来。所以区间关于 r 不对称, r 越接近 ±1 越明显。n < 10 时区间会很宽,这是诚实的反映,不是缺陷。
常见问题
三个系数该报哪一个?
看数据。关系明显是直线且没有极端值,报 Pearson;关系单调但弯曲,或有离群点,报 Spearman 或 Kendall。样本量小(n < 20)时 Kendall 的分布性质更好。关键是:方法要在看到结果之前定好,不能三个都算完挑最好看的那个报。
Pearson 和 Spearman 差很多说明什么?
Spearman 明显更高,通常说明关系是单调但弯曲的(比如指数或对数关系),Pearson 只测直线所以低估了。两者符号相反几乎总是离群点造成的——个别极端值能把 Pearson 拉到相反方向,而秩相关不受影响。这两种情况本页都会主动提示。
r = 0 能说明两个变量无关吗?
不能。它只说明没有线性关系(Spearman 为 0 则是没有单调关系)。U 形关系的 Pearson r 可能正好是 0,但两个变量显然有关。任何相关分析之前都该先画散点图——这是相关系数无法替代的一步。
为什么置信区间关于 r 不对称?
因为用的是 Fisher z 变换:先把 r 变换到近似正态的尺度,在那里算对称区间,再变换回来。r 越接近 ±1,不对称越明显。这是正确行为,不是计算错误。
样本量大时 p 值很小,是不是就说明关联强?
不是。n = 1000 时 r = 0.07 就能给出 p < 0.05,而它解释的方差只有 0.5%。p 值回答「这个关联像不像随机」,r 和 r² 才回答「关联有多强」。先看后者。