20 votos

Está utilizando la matriz de correlación para seleccionar predictores de regresión correcta?

Hace un par de días, un psicólogo investigador mío me dijo acerca de su método para seleccionar las variables para el modelo de regresión lineal. Supongo que no es buena, pero tengo que preguntarle a alguien más para asegurarse. El método es el siguiente:

Mira matriz de correlación entre todas las variables (incluyendo Dependientes Variable Y) y elegir los predictores Xs, que se correlacionan más con Y.

Él no mencionó a ningún criterio. P: ¿tenía razón?

[Creo que este método de selección es malo, porque de muchas cosas, como es la teoría que dice que los predictores deben ser seleccionados, o incluso sesgo de variable omitida (OVB).]

23voto

Silverfish Puntos 6909

Si, por alguna razón, usted se va a incluir sólo una variable en el modelo, a continuación, seleccionando el predictor que tiene la mayor correlación con el $y$ tiene varias ventajas. De los posibles modelos de regresión con sólo un predictor, a continuación, este modelo es el que tiene el mayor coeficiente de regresión estandarizado y también (desde $R^2$ es el cuadrado de $r$ en una regresión lineal simple) el mayor coeficiente de determinación.

Pero no está claro por qué se quiere restringir el modelo de regresión para un predictor si usted tiene datos disponibles para varios. Como se ha mencionado en los comentarios, simplemente mirando a las correlaciones no funciona si el modelo podría incluir varias variables. Por ejemplo, a partir de esta dispersión de la matriz, se podría pensar que los predictores de $y$ usted debe incluir en su modelo de se $x_1$ (correlación 0.824) y $x_2$ (correlación 0.782) pero que $x_3$ (correlación 0.134) no es un predictor útil.

Scatter plot matrix of correlated variables

Pero estaría equivocado - de hecho, en este ejemplo, $y$ depende de dos variables independientes, $x_1$$x_3$, pero no directamente en la $x_2$. Sin embargo $x_2$ está altamente correlacionada con $x_1$, lo que conduce a una correlación con el $y$ también. Mirando la correlación entre el $y$ $x_2$ en el aislamiento, esto podría sugerir $x_2$ es un buen predictor de $y$. Pero una vez que los efectos de la $x_1$ son partialled a cabo mediante la inclusión de $x_1$ en el modelo, no hay tal relación se mantiene.

require(MASS) #for mvrnorm 
set.seed(42) #so reproduces same result

Sigma <- matrix(c(1,0.95,0,0.95,1,0,0,0,1),3,3)
N <- 1e4
x <- mvrnorm(n=N, c(0,0,0), Sigma, empirical=TRUE)
data.df <- data.frame(x1=x[,1], x2=x[,2], x3=x[,3])
# y depends on x1 strongly and x3 weakly, but not directly on x2
data.df$y <- with(data.df, 5 + 3*x1 + 0.5*x3) + rnorm(N, sd=2)

round(cor(data.df), 3)
#       x1    x2    x3     y
# x1 1.000 0.950 0.000 0.824
# x2 0.950 1.000 0.000 0.782
# x3 0.000 0.000 1.000 0.134
# y  0.824 0.782 0.134 1.000
# Note: x1 and x2 are highly correlated
# Since y is highly correlated with x1, it is with x2 too
# y depended only weakly on x3, their correlation is much lower

pairs(~y+x1+x2+x3,data=data.df, main="Scatterplot matrix")
# produces scatter plot above

model.lm <- lm(data=data.df, y ~ x1 + x2 + x3)
summary(model.lm)

# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept)  4.99599    0.02018 247.631   <2e-16 ***
# x1           3.03724    0.06462  47.005   <2e-16 ***
# x2          -0.02436    0.06462  -0.377    0.706    
# x3           0.49185    0.02018  24.378   <2e-16 ***

Este tamaño de la muestra es lo suficientemente grande para superar problemas de multicolinealidad en la estimación de los coeficientes para$x_1$$x_2$. El coeficiente de $x_2$ se estima en cerca de cero, y con no significativo p-valor. El verdadero coeficiente es cero. El intercepto y de las pistas de $x_1$ $x_3$ se estima que cerca de sus verdaderos valores de 5, 3 y 0.5, respectivamente. Tenga en cuenta que $x_3$ está correctamente encontrado para ser un predictor significativo, aunque esto es menos obvio a partir de la dispersión de la matriz.

Y aquí hay un ejemplo que es aún peor:

Sigma <- matrix(c(1,0,0,0.5,0,1,0,0.5,0,0,1,0.5,0.5,0.5,0.5,1),4,4)
N <- 1e4
x <- mvrnorm(n=N, c(0,0,0,0), Sigma, empirical=TRUE)
data.df <- data.frame(x1=x[,1], x2=x[,2], x3=x[,3], x4=x[,4])
# y depends on x1, x2 and x3 but not directly on x4
data.df$y <- with(data.df, 5 + x1 + x2 + x3) + rnorm(N, sd=2)

round(cor(data.df), 3)
#       x1    x2    x3    x4     y
# x1 1.000 0.000 0.000 0.500 0.387
# x2 0.000 1.000 0.000 0.500 0.391
# x3 0.000 0.000 1.000 0.500 0.378
# x4 0.500 0.500 0.500 1.000 0.583
# y  0.387 0.391 0.378 0.583 1.000

pairs(~y+x1+x2+x3+x4,data=data.df, main="Scatterplot matrix")

model.lm <- lm(data=data.df, y ~ x1 + x2 + x3 +x4)
summary(model.lm)
# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept)  4.98117    0.01979 251.682   <2e-16 ***
# x1           0.99874    0.02799  35.681   <2e-16 ***
# x2           1.00812    0.02799  36.016   <2e-16 ***
# x3           0.97302    0.02799  34.762   <2e-16 ***
# x4           0.06002    0.03958   1.516    0.129

Aquí $y$ depende de la (no) predictores $x_1$, $x_2$ y $x_3$ - de hecho, la verdadera pendiente de regresión es uno para cada uno. No depende de una cuarta variable, $x_4$, pero debido a la forma en que la variable está correlacionada con cada uno de $x_1$, $x_2$ y $x_3$, sería $x_4$ que se destaca en el diagrama de dispersión y matrices de correlación (su correlación con el $y$ es 0.583, mientras que los demás están por debajo de 0.4). Para seleccionar la variable con mayor correlación con el $y$ puede encontrar la variable que no tiene cabida en el modelo.

-1voto

Dan Puntos 36

Usted podría ejecutar paso a paso el análisis de regresión de y dejar que el software de escoger las variables basadas en los valores de F. También se puede ver Ajustado R^2 valor al ejecutar la regresión de cada momento, para ver si la adición de cualquier nueva variable que contribuye a su modelo. Su modelo puede tener el problema de la multicolinealidad si usted acaba de ir a por la matriz de correlación y elegir las variables con alta correlación. Espero que esto ayude!

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X