繁体   English   中英

两个数据集之间的逐列相关性和重要性

[英]Column by column correlation & significance between two data sets

我想使用心理 package 中的 corr.test function 来计算两个数据帧的相应列之间的相关性和重要性。 我正在使用的数据帧Df1Df2的一个简化示例是:

set.seed(42)
Df1 <- data.frame(matrix(runif(50), 10, 5))
Df2 <- data.frame(matrix(runif(50), 10, 5))

请注意,此问题已在此处得到解答:

两个数据集与 R 之间的逐列相关性?

但仅针对相关部分,即它缺乏我正在寻找的重要性,因为它使用 cor function 而不是 corr.test 。

任何帮助将不胜感激。

也许是这样的。 Map 得出相关性和 p 值到 dataframe:

library(tidyverse)

map_dfr(1:ncol(Df1), \(i) {
  cr_tst <- cor.test(Df1[, i], Df2[, i])
  tibble(var = colnames(Df1)[i],
         cor = cr_tst$estimate,
         p.value = cr_tst$p.value)
})
#> # A tibble: 5 x 3
#>   var       cor p.value
#>   <chr>   <dbl>   <dbl>
#> 1 X1     0.249    0.488
#> 2 X2    -0.408    0.242
#> 3 X3     0.0372   0.919
#> 4 X4    -0.0997   0.784
#> 5 X5     0.466    0.174

rcorr() function(来自Hmisc包)允许一次计算多对变量的相关性检验的 p 值。 应用于我们的数据集,我们有:

library("Hmisc")
res2 <- rcorr(as.matrix(cbind(Df1, Df2)))
res2
P
   X1     X2     X3     X4     X5     X1     X2     X3     X4     X5    
X1        0.8552 0.3306 0.2765 0.6174 0.4885 0.8445 0.3510 0.4739 0.8592
X2 0.8552        0.4264 0.9639 0.7081 0.2472 0.2417 0.7335 0.9291 0.1414
X3 0.3306 0.4264        0.6919 0.7151 0.4481 0.6139 0.9188 0.9900 0.7766
X4 0.2765 0.9639 0.6919        0.5230 0.4341 0.8599 0.2467 0.7841 0.9047
X5 0.6174 0.7081 0.7151 0.5230        0.1280 0.1076 0.1151 0.8081 0.1744
X1 0.4885 0.2472 0.4481 0.4341 0.1280        0.0130 0.5283 0.6915 0.9308
X2 0.8445 0.2417 0.6139 0.8599 0.1076 0.0130        0.8044 0.7331 0.4809
X3 0.3510 0.7335 0.9188 0.2467 0.1151 0.5283 0.8044        0.8020 0.2286
X4 0.4739 0.9291 0.9900 0.7841 0.8081 0.6915 0.7331 0.8020        0.0595
X5 0.8592 0.1414 0.7766 0.9047 0.1744 0.9308 0.4809 0.2286 0.0595

mapply中使用cor.test并对所需统计信息进行子集化,其中估计是相关性。

mapply(\(x, y) cor.test(x, y)[c('estimate', 'p.value')], Df1, Df2)
#                 X1        X2        X3         X4          X5       
# estimate 0.2486405 -0.408098 0.03718413 -0.09967868 0.4662738
# p.value  0.4884952 0.2416943 0.9187721  0.7841065   0.1743502

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM