我正在测试两个变量之间的相关性:
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 :(得分:3)
您可以使用bootstrap计算rho的置信区间:
1)创建函数来提取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)
答案 1 :(得分:0)
它没有在问题中说,但如果你可以忍受Pearson假设(双变量正常),你可以只查看置信区间的上限。像你这样的任何零假设都会在p <0.05时被拒绝。
> cor.test(x, y, method = c("pearson"))$conf
[1] 0.7757901 0.9629837