使用 R 的非零原假设的相关性显著性

Correlation significance for non-zero null hypothesis using R

提问人:Steve 提问时间:11/14/2011 更新时间:2/6/2014 访问量:5615

问:

我正在测试两个变量之间的相关性:

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?

R 相关性

评论

0赞 Ben Bolker 11/14/2011
在我看来,这对于排名相关过程来说很困难。您可能想在堆栈交换上提出问题(没有特定于 R 的标签)......
1赞 joran 11/14/2011
我想@BenBolker的意思是 stats.stackexchange.com,只是为了让你知道。
0赞 Carl Witthoft 11/14/2011
我现在缺少脑细胞,但你难道不会从实际计算两个数据集的相关系数开始,然后对你的计算质量进行零检验或贝叶斯估计吗?
1赞 Sacha Epskamp 11/14/2011
也许你在这里找到了答案:stats.stackexchange.com/q/14220/3094

答:

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)