首页 文章

比较R中的3个或更多相关系数

提问于
浏览
0

有没有办法在R中快速有效地比较3个或更多相关系数?我知道用于比较2个相关系数的 cocor 包,但我正在寻找一种方法来一次运行所有成对比较,而不是单独进行每一个 .

我想通过使用以下代码比较相关系数来为每个成对比较生成p值:

p_Value = (2*(1-pnorm(abs(((0.5*log((1+r1)/(1-r1)))-(0.5*log((1+r2)/(1-r2))))/(((1/(n1-3))+(1/(n2-3)))^0.5)))))
# r1 = first correlation coefficient in the comparison
# r2 = second correlation coefficient in the comparison
# n1 = number of observations that went in to generating r1
# n2 = number of observations that went in to generating r2

上述代码首先将相关系数转换为z分数,然后计算它们之间的差异(由观察数量加权),最后确定p值 .

这是一个示例数据集:

Relationship <- c("A", "B", "C")
CorrCoeff <- c(0.985, 0.743, 0.430)
CorrCoeff <- as.data.frame(cbind(Comparison, CorrCoeff))
CorrCoeff$nSamples <- 32
> CorrCoeff
  Relationship CorrCoeff nSamples
1            A     0.985       32
2            B     0.743       32
3            C      0.43       32

我想要的输出是:

> Results
  Pairwise_Comparison      p_Value
1                 A-B 1.543237e-08
2                 A-C 4.352074e-14
3                 B-C    0.0582968

或者,更好的是,我正在寻找的功能可以为相关系数分配分离字母:

> Separation_Lettering
  Relationship Letter
1            A      a
2            B      b
3            C      b

同样,我可以使用 cocor 包中的函数生成这些结果,但我希望能够在一次以上的一对比较中运行此测试 .

谢谢!

1 回答

  • 0

    您可以创建相关矩阵 . 这是一个例子,

    # Load data
    data("mtcars")
    my_data <- mtcars[, c(1,3,4,5,6,7)]
    # print the first 6 rows
    head(my_data, 6)
    

    上述代码的输出:

    mpg disp  hp drat    wt  qsec
    Mazda RX4         21.0  160 110 3.90 2.620 16.46
    Mazda RX4 Wag     21.0  160 110 3.90 2.875 17.02
    Datsun 710        22.8  108  93 3.85 2.320 18.61
    Hornet 4 Drive    21.4  258 110 3.08 3.215 19.44
    Hornet Sportabout 18.7  360 175 3.15 3.440 17.02
    Valiant           18.1  225 105 2.76 3.460 20.22
    

    现在按命令创建相关矩阵:

    res <- cor(my_data, method = "pearson", use = "complete.obs")
    # or just by using res <- cor(my_data)
    round(res,2)
    

    上述计划的输出:

    mpg  disp    hp  drat    wt  qsec
    mpg   1.00 -0.85 -0.78  0.68 -0.87  0.42
    disp -0.85  1.00  0.79 -0.71  0.89 -0.43  
    hp   -0.78  0.79  1.00 -0.45  0.66 -0.71
    drat  0.68 -0.71 -0.45  1.00 -0.71  0.09
    wt   -0.87  0.89  0.66 -0.71  1.00 -0.17
    qsec  0.42 -0.43 -0.71  0.09 -0.17  1.00
    

相关问题