Ejemplo de coeficiente de correlación fuerte con un valor p alto

21

Me preguntaba, ¿es posible tener un coeficiente de correlación muy fuerte (digamos .9 o más), con un valor p alto (digamos .25 o más)?

Aquí hay un ejemplo de un coeficiente de correlación bajo, con un valor p alto:

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

cor = 0.03908927, p = 0.6994

Alto coeficiente de correlación, bajo valor de p:

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

cor = 0.8807809, p = 2.2e-16

Bajo coeficiente de correlación, bajo valor de p:

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

cor = 0.1035018, p = 2.2e-16

Alto coeficiente de correlación, alto valor de p: ???

Zach
fuente

Respuestas:

36

La línea de fondo

El coeficiente de correlación muestral necesario para rechazar la hipótesis de que el coeficiente de correlación verdadero (Pearson) es cero se vuelve pequeño bastante rápido a medida que aumenta el tamaño de la muestra. Entonces, en general, no, no puede tener simultáneamente un coeficiente de correlación grande (en magnitud) y un valor simultáneamente grandep .

La línea superior (detalles)

La prueba utilizada para el coeficiente de correlación de Pearson en la función es una versión muy ligeramente modificada del método que analizo a continuación.Rcor.test

Supongamos que son vectores aleatorios normales bivariados con correlación . Queremos probar la hipótesis nula de que versus . Sea el coeficiente de correlación de la muestra. Utilizando la teoría de regresión lineal estándar, no es difícil demostrar que el estadístico de prueba, tiene un distribución bajo la hipótesis nula. Para grande , la distribución acerca a la normal estándar. Por lo tanto,ρ ρ = 0 ρ 0 r T = r (X1,Y1),(X2,Y2),...,(Xnorte,Ynorte)ρρ=0 0ρ0 0r tn-2ntn-2T2T2F1,n-2χ21

T=rnorte-2(1-r2)
tnorte-2nortetnorte-2T2es aproximadamente chi-cuadrado distribuido con un grado de libertad. (Según los supuestos que hemos hecho, en realidad, pero la aproximación aclara lo que está sucediendo, creo).T2F1,norte-2χ12

Entonces, donde es el cuantil de una distribución chi-cuadrado con un grado de libertad.q 1 - α ( 1 - α )

PAGS(r21-r2(norte-2)q1-α)α,
q1-α(1-α)

Ahora, tenga en cuenta que aumenta a medida que aumenta. Reordenando la cantidad en el enunciado de probabilidad, tenemos eso para todos obtendremos un rechazo de la hipótesis nula en el nivel . Claramente, el lado derecho disminuye con .r 2 | r | 1r2/ /(1-r2)r2 αn

El |rEl |11+(norte-2)/ /q1-α
αnorte

Una parcela

Aquí hay una gráfica de la región de rechazo deen función del tamaño de la muestra. Entonces, por ejemplo, cuando el tamaño de la muestra excede 100, la correlación (absoluta) solo necesita ser de aproximadamente 0.2 para rechazar el valor nulo en el nivel .α = 0.05El |rEl |α=0,05

Una simulación

Podemos hacer una simulación simple para generar un par de vectores de media cero con un coeficiente de correlación exacto . Debajo está el código. De esto podemos ver la salida de 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)

Como se solicitó en los comentarios, aquí está el código para reproducir la trama, que se puede ejecutar inmediatamente después del código anterior (y utiliza algunas de las variables definidas allí).

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()
cardenal
fuente
1
Entonces, ¿cuál es el resultado final? Creo que está diciendo que, a menos que el tamaño de la muestra sea pequeño, un valor de correlación alto implica un valor p bajo, pero creo que ayudaría a explicarlo explícitamente.
DW
pags
@cardinal, ¿puede, por favor, publicar el código fuente del gráfico que generó?
aL3xa
@DW, he intentado abordar sus inquietudes. Si ve mejoras que se pueden hacer, hágamelo saber.
cardenal
1
@ aL3xa: agregué el código de trazado que usé. Espero que esto ayude.
cardenal
17
cor.test(c(1,2,3),c(1,2,2))

cor = 0.866, p = 0.333

Aaron - Restablece a Monica
fuente
66
@Zach: No dude en reconsiderar su cheque ahora que el cardenal y Shabbychef se han tomado el tiempo para dar respuestas completas.
Aaron - Restablece a Monica el
11

Una estimación alta del coeficiente de correlación con un valor p alto solo podría ocurrir con un tamaño de muestra muy pequeño. Estaba a punto de proporcionar una ilustración, ¡pero Aaron acaba de hacer eso!

una parada
fuente
9

1/ /norte-3ρ^>0 0pags

pags=2-2Φ(atanh(ρ^)norte-3),
ΦH0 0:ρ=0 0

norteρ^pags

 #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,5pags=0.2 0.2

print(n.size(0.5,0.2))

[1] 8.443062

norte,pagsρ^

shabbychef
fuente
1

Sí. Un valor p depende del tamaño de la muestra, por lo que una muestra pequeña puede proporcionarlo.

Digamos que el tamaño real del efecto era muy pequeño, y dibuja una pequeña muestra. Por suerte, obtienes algunos puntos de datos con una correlación muy alta. El valor p será alto, como debería ser. La correlación es alta, pero no es un resultado muy confiable.

La correlación de la muestra de R's cor () le indicará la mejor estimación de la correlación (dada la muestra). El valor p NO mide la fuerza de la correlación. Mide qué tan probable podría haber surgido en caso de que realmente no hubiera ningún efecto, considerando el tamaño de la muestra.

Otra forma de ver esto: si tiene el mismo tamaño de efecto, pero obtiene más muestras, el valor p siempre va a cero.

(Si desea integrar más estrechamente las nociones de tamaño del efecto estimado y la confianza acerca de la estimación, puede ser mejor usar intervalos de confianza o usar técnicas bayesianas).

Brendan OConnor
fuente
α=0,05x <- seq(0,4); y <- seq(0,4) + rnorm(5); cor.test(x,y)