Значение корреляции для ненулевой нулевой гипотезы с использованием R - PullRequest
7 голосов
/ 13 ноября 2011

Я проверяю соотношение между двумя переменными:

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?

Ответы [ 2 ]

3 голосов
/ 06 февраля 2014

Вы можете использовать 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)
0 голосов
/ 14 ноября 2011

Это не говорит в вопросе, но если вы можете жить с предположениями Пирсона (двумерные нормальные), вы можете просто посмотреть на верхнюю границу доверительного интервала.Любая нулевая гипотеза, подобная вашей, больше вашей, будет отклонена при p <0,05. </p>

> cor.test(x, y, method = c("pearson"))$conf
[1] 0.7757901 0.9629837
...