[英]Comparing 3 or more correlation coefficients in R
有没有办法在 R 中快速有效地比较 3 个或更多相关系数? 我知道用于比较 2 个相关系数的cocor
包,但我正在寻找一种方法来一次运行所有成对比较,而不是单独进行每个比较。
以下期刊文章中描述了这种类型的成对相关系数比较:
Levy, KJ 1977。成对比较涉及与相关性、比例或方差相关的不等样本量。 兄弟 J. 数学。 统计。 心理学。 30:137-139。
我想通过使用以下代码为每个成对比较生成 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-scores,然后计算它们之间的差值(以观察次数加权),最后确定p-value。
这是一个示例数据集:
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
包中的函数生成这些结果,但我希望能够一次在多个成对比较上运行此测试。
谢谢!
您可以创建相关矩阵。 这是一个例子,
# 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
我写了一个函数( Comparing_Correlation_Coefficients
),它只使用基本的 R 函数来做到这一点。 它需要 6 个参数(前 3 个是必需的):
Correlation_Coefficients
: 包含要分析的相关系数的数值向量
Numbers_of_Observations
:一个数字或整数向量,其中包含进入每个相应相关系数的观察数量
Identifiers
:包含名称的字符或因子向量,用于标识每个相应的相关系数
Data_Frame
:要包含的可选数据框,以便可以为前三个参数提供列名(应为此Data_Frame
参数提供这些列来自的数据框)
Alpha = 0.05
:可以测试显着性的 alpha 值(默认值为0.05
)
Control_for_Experimentwise_Error = TRUE
:一个参数,指定该函数是否应该给出保守估计(即,将实验错误率保持在给定的 alpha 值)或自由估计(即,对每个成对比较使用给定的 alpha 值); 默认值TRUE
将实验错误率保持在 alpha 并根据成对比较的数量计算比较错误率
以下是此功能的 GitHub 页面链接:
享受!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.