成对相关表 [英] Pairwise Correlation Table
问题描述
我是 R 的新手,所以如果这是一个简单的问题,我深表歉意,但是我今晚做了很多搜索,似乎无法弄清楚.我有一个包含大量变量的数据框,我想做的是创建一个这些子集之间的相关性表,基本上相当于 Stata 中的pwcorr",或相关性"SPSS.对此的一个关键是,我不仅想要 r,而且还想要与该值相关的重要性.
I'm new to R, so I apologize if this is a straightforward question, however I've done quite a bit of searching this evening and can't seem to figure it out. I've got a data frame with a whole slew of variables, and what I'd like to do is create a table of the correlations among a subset of these, basically the equivalent of "pwcorr" in Stata, or "correlations" in SPSS. The one key to this is that not only do I want the r, but I also want the significance associated with that value.
有什么想法吗?这看起来应该很简单,但我似乎想不出什么好方法.
Any ideas? This seems like it should be very simple, but I can't seem to figure out a good way.
推荐答案
Bill Venables 在 这个答案 来自 R 邮件列表,我对其做了一些轻微的修改:
Bill Venables offers this solution in this answer from the R mailing list to which I've made some slight modifications:
cor.prob <- function(X, dfr = nrow(X) - 2) {
R <- cor(X)
above <- row(R) < col(R)
r2 <- R[above]^2
Fstat <- r2 * dfr / (1 - r2)
R[above] <- 1 - pf(Fstat, 1, dfr)
cor.mat <- t(R)
cor.mat[upper.tri(cor.mat)] <- NA
cor.mat
}
让我们测试一下:
set.seed(123)
data <- matrix(rnorm(100), 20, 5)
cor.prob(data)
[,1] [,2] [,3] [,4] [,5]
[1,] 1.0000000 NA NA NA NA
[2,] 0.7005361 1.0000000 NA NA NA
[3,] 0.5990483 0.6816955 1.0000000 NA NA
[4,] 0.6098357 0.3287116 0.5325167 1.0000000 NA
[5,] 0.3364028 0.1121927 0.1329906 0.5962835 1
这与 cor.test 一致吗?
Does that line up with cor.test?
cor.test(data[,2], data[,3])
Pearson's product-moment correlation
data: data[, 2] and data[, 3]
t = 0.4169, df = 18, p-value = 0.6817
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.3603246 0.5178982
sample estimates:
cor
0.09778865
似乎工作正常.
这篇关于成对相关表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!