首页 文章

相关系数的p值

提问于
浏览
3

我正在使用R并对相关性有疑问 .

A<-data.frame(A1=c(1,2,3,4,5),B1=c(6,7,8,9,10),C1=c(11,12,13,14,15 ))
B<-data.frame(A2=c(6,7,7,10,11),B2=c(2,1,3,8,11),C2=c(1,5,16,7,8))
cor(A,B)
#           A2        B2       C2
# A1 0.9481224 0.9190183 0.459588
# B1 0.9481224 0.9190183 0.459588
# C1 0.9481224 0.9190183 0.459588

我想获得矩阵中每个相关系数的p值 . 这可能吗?

我尝试使用Hmisc包中的 rcorr 函数但只获得一个p值而不是每个相关 .

A <- as.vector(t(A))
B <- as.vector(t(B))
rcorr(A, B)
     x    y
x 1.00 0.13
y 0.13 1.00

n= 15 


P
  x      y     
x        0.6425
y 0.6425

同样,我也尝试在R中使用“psych”包来做到这一点但却无法做到 .

1 回答

  • 3

    如果先将它们转换为矩阵,则可以直接在 AB 上应用 rcorr

    library(Hmisc)
    rcorr(as.matrix(A),as.matrix(B))
    

    这使 :

    A1   B1   C1   A2   B2   C2
    A1 1.00 1.00 1.00 0.95 0.92 0.46
    B1 1.00 1.00 1.00 0.95 0.92 0.46
    C1 1.00 1.00 1.00 0.95 0.92 0.46
    A2 0.95 0.95 0.95 1.00 0.97 0.16
    B2 0.92 0.92 0.92 0.97 1.00 0.15
    C2 0.46 0.46 0.46 0.16 0.15 1.00
    
    n= 5 
    
    
    P
       A1     B1     C1     A2     B2     C2    
    A1        0.0000 0.0000 0.0141 0.0273 0.4361
    B1 0.0000        0.0000 0.0141 0.0273 0.4361
    C1 0.0000 0.0000        0.0141 0.0273 0.4361
    A2 0.0141 0.0141 0.0141        0.0078 0.7981
    B2 0.0273 0.0273 0.0273 0.0078        0.8125
    C2 0.4361 0.4361 0.4361 0.7981 0.8125
    

相关问题