Mi pregunta surgió de una discusión con @whuber en los comentarios de una pregunta diferente .
Específicamente, el comentario de @whuber fue el siguiente:
Una razón por la que puede sorprenderle es que los supuestos subyacentes a una prueba de correlación y una prueba de pendiente de regresión son diferentes, por lo que incluso cuando comprendemos que la correlación y la pendiente realmente miden lo mismo, ¿por qué sus valores p deberían ser los mismos? Eso muestra cómo estos problemas son más profundos que simplemente si y deberían ser numéricamente iguales.β
Esto me hizo pensar al respecto y me encontré con una variedad de respuestas interesantes. Por ejemplo, encontré esta pregunta " Suposiciones del coeficiente de correlación " pero no puedo ver cómo esto aclararía el comentario anterior.
Encontré respuestas más interesantes sobre la relación de de Pearson y la pendiente en una regresión lineal simple (ver aquí y aquí, por ejemplo), pero ninguna de ellas parece responder a lo que @whuber se refería en su comentario (al menos no aparente a mi).β
Pregunta 1: ¿Cuáles son los supuestos subyacentes a una prueba de correlación y una prueba de pendiente de regresión?
Para mi segunda pregunta, considere los siguientes resultados en R
:
model <- lm(Employed ~ Population, data = longley)
summary(model)
Call:
lm(formula = Employed ~ Population, data = longley)
Residuals:
Min 1Q Median 3Q Max
-1.4362 -0.9740 0.2021 0.5531 1.9048
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 8.3807 4.4224 1.895 0.0789 .
Population 0.4849 0.0376 12.896 3.69e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.013 on 14 degrees of freedom
Multiple R-squared: 0.9224, Adjusted R-squared: 0.9168
F-statistic: 166.3 on 1 and 14 DF, p-value: 3.693e-09
Y la salida de la cor.test()
función:
with(longley, cor.test(Population, Employed))
Pearson's product-moment correlation
data: Population and Employed
t = 12.8956, df = 14, p-value = 3.693e-09
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8869236 0.9864676
sample estimates:
cor
0.9603906
Como puede verse por la lm()
y cov.test()
de salida, de Pearson coeficiente de correlación y la estimación de la pendiente ( ) son en gran medida diferente, 0,96 vs. 0,485, respectivamente, pero el valor de t y los valores de p son los mismos.β 1
Luego también intenté ver si soy capaz de calcular el valor t para y , que son los mismos a pesar de que y son diferentes. Y ahí es donde me quedo atascado, al menos para :β 1 r β 1 r
Calcule la pendiente ( ) en una regresión lineal simple usando las sumas totales de cuadrados de e : x y
x <- longley$Population; y <- longley$Employed
xbar <- mean(x); ybar <- mean(y)
ss.x <- sum((x-xbar)^2)
ss.y <- sum((y-ybar)^2)
ss.xy <- sum((x-xbar)*(y-ybar))
Calcule la estimación de mínimos cuadrados de la pendiente de regresión, (hay una prueba de esto en Crawley's R Book 1st edition , página 393):
b1 <- ss.xy/ss.x
b1
# [1] 0.4848781
Calcule el error estándar para :
ss.residual <- sum((y-model$fitted)^2)
n <- length(x) # SAMPLE SIZE
k <- length(model$coef) # NUMBER OF MODEL PARAMETER (i.e. b0 and b1)
df.residual <- n-k
ms.residual <- ss.residual/df.residual # RESIDUAL MEAN SQUARE
se.b1 <- sqrt(ms.residual/ss.x)
se.b1
# [1] 0.03760029
Y el valor t y el valor p para :
t.b1 <- b1/se.b1
p.b1 <- 2*pt(-abs(t.b1), df=n-2)
t.b1
# [1] 12.89559
p.b1
# [1] 3.693245e-09
Lo que no sé en este momento, y esta es la pregunta 2 , ¿cómo calcular el mismo valor t usando lugar de (quizás en pasos de bebé)?β 1
Supongo que, dado que cor.test()
la hipótesis alternativa es si la correlación verdadera no es igual a 0 (véase el cor.test()
resultado anterior), esperaría algo así como el coeficiente de correlación de Pearson dividido por el "error estándar del coeficiente de correlación de Pearson" (similar al encima)?! Pero, ¿cuál sería ese error estándar y por qué?b1/se.b1
¿Quizás esto tiene algo que ver con los supuestos antes mencionados subyacentes a una prueba de correlación y una prueba de pendiente de regresión ?
EDITAR (27-jul-2017): Si bien @whuber proporcionó una explicación muy detallada para la pregunta 1 (y en parte la pregunta 2 , vea los comentarios bajo su respuesta), investigué un poco más y descubrí que estas dos publicaciones ( aquí y aquí ) sí muestra un error estándar específico para , que funciona bien para responder la pregunta 2 , es decir, reproducir el valor t dado :r
r <- 0.9603906
# n <- 16
r.se <- sqrt((1-r^2)/(n-2))
r/r.se
# [1] 12.8956