Пример сильного коэффициента корреляции с высоким значением p

21

Мне было интересно, возможно ли иметь очень сильный коэффициент корреляции (скажем, 0,9 или выше), с высоким значением р (скажем, 0,25 или выше)?

Вот пример низкого коэффициента корреляции с высоким значением p:

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

кор = 0,03908927, р = 0,6994

Высокий коэффициент корреляции, низкое значение p:

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

кор = 0,8807809, р = 2,2е-16

Низкий коэффициент корреляции, низкое значение p:

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

кор = 0,1035018, р = 2,2е-16

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

Zach
источник

Ответы:

36

Суть

Коэффициент корреляции выборки, необходимый для того, чтобы опровергнуть гипотезу о том, что истинный коэффициент корреляции (Пирсона) равен нулю, становится достаточно малым по мере увеличения размера выборки. Так что, в общем, нет, вы не можете одновременно иметь большой (по величине) коэффициент корреляции и одновременно большое значениеп .

Верхняя линия (детали)

Тест, используемый для коэффициента корреляции Пирсона в функции, является очень немного измененной версией метода, который я обсуждаю ниже.рcor.test

Предположим, что являются двумерными нормальными случайными векторами с корреляцией ρ . Мы хотим проверить нулевую гипотезу, что ρ = 0 против ρ 0 . Пусть r - выборочный коэффициент корреляции. Используя стандартную теорию линейной регрессии, нетрудно показать, что тестовая статистика, T = r (Икс1,Y1),(Икс2,Y2),...,(ИксN,YN)ρρзнак равно0ρ0р имеетраспределениеtn-2при нулевой гипотезе. Для большогоп, тотп-2распределения приближается к стандартному нормальному. Следовательно,Т2приблизительно хи-квадрат распределен с одной степенью свободы. (В предположениях мы сделали,T2~F1,п-2в действительности, ноχ21приближение делает более яснымчто происходит, я думаю.)

T=rn2(1r2)
tn2ntn2T2T2F1,n2χ12

Итак, Где Q 1 - α является ( 1 - α ) квантиль распределения хи-квадрат с одной степенью свободы.

P(r21r2(n2)q1α)α,
q1α(1α)

Теперь обратите внимание, что увеличивается с увеличением r 2 . Переставляя количество в утверждении вероятности, мы имеем это для всех | г | 1r2/(1r2)r2 мы получим отказ от нулевой гипотезы на уровнеα. Очевидно, что правая часть уменьшается сn.

|р|11+(N-2)/Q1-α
αN

Участок

Вот график области отклонения как функция размера выборки. Так, например, когда размер выборки превышает 100, (абсолютная) корреляция должна быть только около 0,2, чтобы отклонить ноль на уровне α = 0,05 .|р|αзнак равно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
п
@cardinal, не могли бы вы опубликовать исходный код сгенерированного вами графика?
aL3xa
@DW, я попытался решить твои проблемы. Если вы видите улучшения, которые могут быть сделаны, пожалуйста, дайте мне знать.
кардинал
1
@ aL3xa: я добавил код, который я использовал. Надеюсь это поможет.
кардинал
17
cor.test(c(1,2,3),c(1,2,2))

кор = 0,866, р = 0,333

Аарон - Восстановить Монику
источник
6
@ Зак: Пожалуйста, не стесняйтесь пересмотреть свой чек сейчас, когда кардинал и Шаббычеф нашли время, чтобы дать полные ответы.
Аарон - Восстановить Монику
11

Высокая оценка коэффициента корреляции с высоким значением p может иметь место только при очень небольшом размере выборки. Я собирался представить иллюстрацию, но Аарон только что сделал это!

универсальный
источник
9

1/N-3ρ^>0п

пзнак равно2-2Φ(ATANH(ρ^)N-3),
ΦЧАС0:ρзнак равно0

Nρ^п

 #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,5пзнак равно0.2

print(n.size(0.5,0.2))

[1] 8,443062

N,пρ^

shabbychef
источник
1

Да. Значение р зависит от размера выборки, поэтому небольшая выборка может дать это.

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

Выборочная корреляция из R's cor () покажет вам наилучшую оценку корреляции (с учетом выборки). Значение p НЕ измеряет силу корреляции. Он измеряет, насколько вероятно, что он мог возникнуть в случае, если на самом деле не было никакого эффекта, учитывая размер выборки.

Другой способ убедиться в этом: если у вас одинаковый размер эффекта, но вы получаете больше сэмплов, значение p всегда обнуляется.

(Если вы хотите более тесно интегрировать понятия оценочной величины эффекта и достоверности оценки, может быть лучше использовать доверительные интервалы или использовать байесовские методы.)

Брендан Оконнор
источник
αзнак равно0,05x <- seq(0,4); y <- seq(0,4) + rnorm(5); cor.test(x,y)