提问人:Steve 提问时间:11/14/2011 更新时间:2/6/2014 访问量:5615
使用 R 的非零原假设的相关性显著性
Correlation significance for non-zero null hypothesis using R
问:
我正在测试两个变量之间的相关性:
set.seed(123)
x <- rnorm(20)
y <- x + x * 1:20
cor.test(x, y, method = c("spearman"))
这给了:
Spearman's rank correlation rho
data: x and y
S = 54, p-value = 6.442e-06
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho
0.9594
p 值用于检验相关性为零的原假设。是否有 R 函数可以让我测试不同的原假设 - 假设相关性小于或等于 0.3?
答:
0赞
John Colby
11/14/2011
#1
它没有在问题中说,但如果你能接受皮尔逊假设(双变量正态),你可以只看置信区间的上限。任何像你这样大于这个假设的原假设都会在 p<0.05 处被拒绝。
> cor.test(x, y, method = c("pearson"))$conf
[1] 0.7757901 0.9629837
评论
0赞
Steve
11/14/2011
是的,我曾考虑过皮尔逊系数,但不幸的是,我的真实数据中有几个异常值,因此我认为 rho 会更合适。我不知道是否有办法为 rho 生成置信区间。
0赞
Carlos Cinelli
2/7/2014
您可以使用 bootstrap 生成 rho 的置信区间,请参阅其他答案。
3赞
Carlos Cinelli
2/6/2014
#2
您可以使用 bootstrap 来计算 rho 的置信区间:
1) make 函数来提取 cor.test 的估计值(记得放置索引,以便启动可以对数据进行采样):
rho <- function(x, y, indices){
rho <- cor.test(x[indices], y[indices], method = c("spearman"))
return(rho$estimate)
}
2) 使用软件包来引导您的估计:boot
library(boot)
boot.rho <- boot(x ,y=y, rho, R=1000)
3)取置信区间:
boot.ci(boot.rho)
评论