Приклад сильного коефіцієнта кореляції з високим значенням р


21

Мені було цікаво, чи можна мати дуже сильний коефіцієнт кореляції (скажімо, 9 або вище), з високим значенням p (скажімо, .25 або вище)?

Ось приклад низького коефіцієнта кореляції з високим значенням p:

set.seed(10)
y <- rnorm(100)
x <- rnorm(100)+.1*y
cor.test(x,y)

cor = 0,03908927, p = 0,6994

Високий коефіцієнт кореляції, низьке значення р:

y <- rnorm(100)
x <- rnorm(100)+2*y
cor.test(x,y)

cor = 0,8807809, p = 2,2e-16

Низький коефіцієнт кореляції, низьке значення р:

y <- rnorm(100000)
x <- rnorm(100000)+.1*y
cor.test(x,y)

cor = 0,1035018, p = 2,2e-16

Високий коефіцієнт кореляції, високе значення р: ???

Відповіді:


36

Суть

Коефіцієнт кореляції вибірки, необхідний для відхилення гіпотези про те, що справжній коефіцієнт кореляції Пірсона дорівнює нулю, стає невеликим досить швидко, оскільки розмір вибірки збільшується. Отже, загалом, ні, ви не можете одночасно мати великий (за величиною) коефіцієнт кореляції та одночасно великий -значенняp .

Верхня лінія (подробиці)

Тест , який використовується для коефіцієнта кореляції Пірсона в функції є дуже незначно модифікованою версією методи я обговорити нижче.Rcor.test

Припустимо, є нормальними випадковими векторами з кореляцією . Ми хочемо перевірити нульову гіпотезу, що проти . Нехай - коефіцієнт кореляції вибірки. Використовуючи стандартну теорію лінійної регресії, не важко показати, що статистика тесту, має розподіл за нульовою гіпотезою. Для великих розподіл наближається до стандартної норми. Звідсиρ ρ = 0 ρ 0 r T = r (Х1,Y1),(Х2,Y2),,(Хн,Yн)ρρ=0ρ0r tn-2ntn-2T2T2F1,n-2χ21

Т=rн-2(1-r2)
тн-2нтн-2Т2приблизно чі-квадрат, розподілений з одним ступенем свободи. (За припущеннями, які ми зробили, насправді, але наближення робить зрозумілішим, що відбувається, я думаю.)Т2Ж1,н-2χ12

Отже, де - квантил хі-квадратного розподілу з одним ступенем свободи.q 1 - α ( 1 - α )

П(r21-r2(н-2)q1-α)α,
q1-α(1-α)

Тепер зауважимо, що зростає зі збільшенням . Переставляючи величину у викладі ймовірності, маємо це для всіх ми отримаємо відхилення нульової гіпотези на рівні . Ясно правий бік зменшується з .r 2 | r | 1r2/(1-r2)r2 αn

|r|11+(н-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()

1
Отже - яка суть? Я думаю, ви говорите, що, якщо розмір вибірки невеликий, високе значення кореляції передбачає низьке значення p - але я думаю, що це допоможе чітко прописати це.
DW

@DW: Дякую вам за коментарі! Я сподівався, що нижній рядок буде зрозумілим із зображення, а рівняння дисплея показує, що кореляція у квадраті, необхідна для підтримки будь-якого фіксованого значення, монотонно зменшується як функція від розміру вибірки. Я розберуся, як зробити більш чітке твердження щодо цього і перенесу його у відповідне місце. Дякую, ще раз за конструктивні відгуки. p
кардинал

@cardinal, чи можете ви, будь ласка, опублікувати вихідний код для створеного вами графіка?
aL3xa

@DW, я зробив спробу вирішити ваші проблеми. Якщо ви побачите вдосконалення, які можна зробити, повідомте мене про це.
кардинал

1
@ aL3xa: Я додав кодовий графік, який я використав. Сподіваюся, це допомагає.
кардинал


11

Висока оцінка коефіцієнта кореляції з високим р-значенням може відбуватися лише при дуже малому розмірі вибірки. Я збирався надати ілюстрацію, але Аарон щойно це зробив!


9

Я вважаю, що за перетворенням Фішера RZ гіперболічний арктан кореляції вибірки під нулем приблизно нормальний із середнім нулем та стандартною помилкою . Отже, щоб отримати, наприклад, зразок кореляції із фіксованим значенням , , вам знадобиться де CDF стандартної норми, і ви виконуєте двосторонній тест на нуль .ρ >0рр=2-2Φ ( ATANH( ρ )1/н-3ρ^>0pΦH0:ρ=0

p=2-2Φ(атан(ρ^)н-3),
ΦН0:ρ=0

Ви можете перетворити це у функцію, яка дає необхідні для фіксованого та . В R:ρ рнρ^p

 #get n for sample correlation and p-value, 2-sided test of 0 correlation
 n.size <- function(rho.hat,p.val) {
   n <- 3 + ((qnorm(1 - 0.5 * p.val)) / atanh(rho.hat))^2
 }

Запустивши це для і дає:р=0,2ρ^=0,5p=0,2

print(n.size(0.5,0.2))

[1] 8.443062

Отже, розмір вибірки повинен становити близько 8. Якщо грати з цією функцією, слід дати вам деяке уявлення про зв’язок між та .ρн,pρ^


1

Так. Значення р залежить від розміру вибірки, тому невеликий зразок може дати це.

Скажіть, що справжній розмір ефекту був дуже малим, і ви малюєте невеликий зразок. На щастя, ви отримуєте кілька точок даних з дуже високою кореляцією. Значення р буде високим, як і повинно бути. Кореляція висока, але це не дуже надійний результат.

Кореляція вибірки з cor's (R) скаже вам найкращу оцінку кореляції (з огляду на вибірку). Значення р НЕ вимірює силу кореляції. Він вимірює, наскільки вірогідний він міг виникнути, якщо насправді ефекту не було, враховуючи розмір вибірки.

Ще один спосіб переконатися в цьому: Якщо ви маєте однаковий розмір ефекту, але отримуєте більше зразків, значення p завжди йде до нуля.

(Якщо ви хочете більш детально інтегрувати поняття прогнозованого розміру ефекту та впевненість у оцінці, можливо, буде краще використовувати інтервали довіри; або використовувати байєсівські методи.)


«Маленький зразок» тут в основному настільки малі, щоб бути безглуздим, в основному будь-який зразок більшого розміру , ніж 4 відхилить нуль при кореляції більше , ніж 0,9: . α=0,05x <- seq(0,4); y <- seq(0,4) + rnorm(5); cor.test(x,y)
naught101
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.