Суть
Коефіцієнт кореляції вибірки, необхідний для відхилення гіпотези про те, що справжній коефіцієнт кореляції Пірсона дорівнює нулю, стає невеликим досить швидко, оскільки розмір вибірки збільшується. Отже, загалом, ні, ви не можете одночасно мати великий (за величиною) коефіцієнт кореляції та одночасно великий -значенняp .
Верхня лінія (подробиці)
Тест , який використовується для коефіцієнта кореляції Пірсона в функції є дуже незначно модифікованою версією методи я обговорити нижче.Rcor.test
Припустимо, є нормальними випадковими векторами з кореляцією . Ми хочемо перевірити нульову гіпотезу, що проти . Нехай - коефіцієнт кореляції вибірки. Використовуючи стандартну теорію лінійної регресії, не важко показати, що статистика тесту,
має розподіл за нульовою гіпотезою. Для великих розподіл наближається до стандартної норми. Звідсиρ ρ = 0 ρ ≠ 0 r T = r √( X1, Y1) , ( X2, Y2) , … , ( Xн, Yн)ρρ = 0ρ ≠ 0r tn-2ntn-2T2T2∼F1,n-2χ21
Т= r n - 2-----√( 1 - r2)------√
тn - 2нтn - 2Т2приблизно чі-квадрат, розподілений з одним ступенем свободи. (За припущеннями, які ми зробили, насправді, але наближення робить зрозумілішим, що відбувається, я думаю.)
Т2∼ F1 , n - 2χ21
Отже,
де - квантил хі-квадратного розподілу з одним ступенем свободи.q 1 - α ( 1 - α )
Р ( r21 - r2( n - 2 ) ≥ q1 - α) ≈α,
q1 - α( 1 - α )
Тепер зауважимо, що зростає зі збільшенням . Переставляючи величину у викладі ймовірності, маємо це для всіх
ми отримаємо відхилення нульової гіпотези на рівні . Ясно правий бік зменшується з .r 2 | r | ≥ 1r2/ (1- r2)r2 αn
| r | ≥ 11 + ( n - 2 ) / q1 - α-------------√
αн
Сюжет
Ось сюжет області відхиленняяк функція від розміру вибірки. Так, наприклад, коли розмір вибірки перевищує 100, кореляція (абсолютна) повинна бути лише приблизно 0,2, щоб відхилити нуль на рівні .α = 0,05| r |α = 0,05
Моделювання
Ми можемо зробити просте моделювання для створення пари нульових середніх векторів з точним коефіцієнтом кореляції. Нижче - код. З цього ми можемо переглянути вихід cor.test
.
k <- 100
n <- 4*k
# Correlation that gives an approximate p-value of 0.05
# Change 0.05 to some other desired p-value to get a different curve
pval <- 0.05
qval <- qchisq(pval,1,lower.tail=F)
rho <- 1/sqrt(1+(n-2)/qval)
# Zero-mean orthogonal basis vectors
b1 <- rep(c(1,-1),n/2)
b2 <- rep(c(1,1,-1,-1),n/4)
# Construct x and y vectors with mean zero and an empirical
# correlation of *exactly* rho
x <- b1
y <- rho * b1 + sqrt(1-rho^2) * b2
# Do test
ctst <- cor.test(x,y)
Як вимагається в коментарях, ось код для відтворення сюжету, який можна запустити відразу після коду вище (і використовує деякі змінні, визначені там).
png("cortest.png", height=600, width=600)
m <- 3:1000
yy <- 1/sqrt(1+(m-2)/qval)
plot(m, yy, type="l", lwd=3, ylim=c(0,1),
xlab="sample size", ylab="correlation")
polygon( c(m[1],m,rev(m)[1]), c(1,yy,1), col="lightblue2", border=NA)
lines(m,yy,lwd=2)
text(500, 0.5, "p < 0.05", cex=1.5 )
dev.off()