使用 Spearman 的 rho 报告确定系数

机器算法验证 回归 相关性 规模效应 斯皮尔曼罗 皮尔逊-r
2022-03-25 19:53:26

我有两个非正态分布的变量(正偏态,表现出天花板效应)。我想计算这两个变量之间的相关系数。由于非正态分布,我使用了 Spearman 的秩相关,它返回一个相关系数和一个显着性 (p) 值。我的结果 (n=400) 显示出显着的 ( ) 但相关性较弱 (Spearman 的 = .20)。如果使用 Pearson's,则可以根据共享方差(确定系数, - 在我的情况下 = .04,即 4%)来描述相关性的强度。似乎没有意义p=8×105ρR2R2ρSpearman 对数据进行排名。讨论效果大小的最佳方式是什么ρ

或者,在此处进行讨论(Pearson 或 Spearman 与非正态数据的相关性)之后,我将讨论解释为 Pearson 的相关性不假设正态性,但从相关系数计算 p 值可以。因此,我想知道是否可以使用 Spearman 计算相关性的 p 值,并使用 Pearson 计算效应大小,从而继续谈论两个变量之间的共享方差。

3个回答

Pearson 的 r 和 Spearman 的 rho 都已经是效应量度。例如,Spearman 的 rho 表示数据转换为秩后数据的相关程度。因此,它已经抓住了关系的力量。

人们经常平方相关系数,因为它有一个很好的口头解释为共享方差的比例。也就是说,没有什么能阻止您以直接相关的度量来解释关系的大小。

对 Spearman 的 rho 求平方似乎并不常见。也就是说,如果你愿意,你可以把它平方。然后它将表示两个排名变量中共享方差的比例。

我不会太担心 p 值的正态性和绝对精度。想想 Pearson 还是 Spearman 是否能更好地捕捉到感兴趣的关联。正如您已经提到的,请参阅此处关于 Pearson r 和 Spearman rho 之间选择的非正态性含义的讨论。

@Jeromy Anglim 关于对 Spearman 的 Rho 进行平方并将其解释为决定系数:如果您使用部分 Spearman 的 Rho,则对部分 Spearman 的 Rho 进行平方并将它们相加可以给您一个大于 1 的总和。因此,失去了部分决定系数的意义,即自变量的等级解释了因方差等级的方差百分比。但是,如果您对 Pearson 的偏相关系数执行相同的程序,则总数将始终有界 btw [0,1]。

例如,在 R 中尝试:

y.data <- data.frame(
    hl=c(7,15,19,15,21,22,57,15,20,18),
    disp=c(0.000,0.964,0.000,0.000,0.921,0.000,0.000,1.006,0.000,1.011),
    deg=c(9,2,3,4,1,3,1,3,6,1),
    BC=c(1.78e-02,1.05e-06,1.37e-05,7.18e-03,0.00e+00,0.00e+00,0.00e+00
    ,4.48e-03,2.10e-06,0.00e+00))
head(y.data)

p1=pcor.test(y.data$hl,  y.data$disp,  y.data[,c("deg","BC")], method = c("pearson"))$estimate^2# y.data[,c("deg","BC") --> indicates what other valiables are controling to
p2=pcor.test(y.data$hl,  y.data$deg,  y.data[,c("disp","BC")], method = c("pearson"))$estimate^2
p3=pcor.test(y.data$hl,  y.data$BC,  y.data[,c("disp","deg")], method = c("pearson"))$estimate^2
p1+p2+p3

输出 = 0.8444889 和

s1= pcor.test(y.data$hl,  y.data$disp, y.data[,c("deg","BC")], method = c("spearman"))$estimate^2
s2=pcor.test(y.data$hl,  y.data$deg,  y.data[,c("disp","BC")], method = c("spearman") )$estimate^2
s3=pcor.test(y.data$hl,  y.data$BC,   y.data[,c("disp","deg")], method = c("spearman"))$estimate^2
s1+s2+s3

输出 = 1.22142

不确定详细的数学解释为什么部分 Spearman 的 rho 的平方和可以高于 1。

问题:我们能否将平方的肯德尔偏相关系数解释为决定系数?在上面的示例中使用 Kendall:

k1= pcor.test(y.data$hl,  y.data$disp, y.data[,c("deg","BC")], method = c("kendall"))$estimate^2
k2=pcor.test(y.data$hl,  y.data$deg,  y.data[,c("disp","BC")], method = c("kendall") )$estimate^2
k3=pcor.test(y.data$hl,  y.data$BC,   y.data[,c("disp","deg")], method = c("kendall"))$estimate^2
k1+k2+k3

结果= 0.6010744。但我不确定如何解释 Kendall 的平方,或者平方是否可以接受。

关于 R 中的 pcor.test() 函数:Pearson 和 Spearman 偏相关系数

我没有足够的声誉来评论卢卡斯的答案,所以我会写这个答案。您还可以获得 Pearson 相关性高于 1 的部分 R 平方和。由于 Spearman 或 Pearson 相关性,这不会发生,实际上,我希望无论依赖度量如何都会发生这种情况。发生这种情况是因为通过调整对撞机添加了虚假相关性。也许还有其他情况,但这是其中一种方式。

查看下面的 R 代码以获取示例。

set.seed(2021)
N <- 1000
X <- rnorm(N)
Y <- rnorm(N)
Z1 <- X - Y + rnorm(N)
Z2 <- X - Y + rnorm(N)
Z3 <- X - Y + rnorm(N)
Z4 <- X - Y + rnorm(N)
Z5 <- X - Y + rnorm(N)
Z1_r2 <- (pcor.test(X,Y,Z1)$estimate)**2
Z2_r2 <- (pcor.test(X,Y,Z2)$estimate)**2
Z3_r2 <- (pcor.test(X,Y,Z3)$estimate)**2
Z4_r2 <- (pcor.test(X,Y,Z4)$estimate)**2
Z5_r2 <- (pcor.test(X,Y,Z5)$estimate)**2
Z1_r2 + Z2_r2 + Z3_r2 + Z4_r2 + Z5_r2

结果大于一。它是1.296859要了解原因,您可以查看此答案