¿Es correcto usar la matriz de correlación para seleccionar predictores para la regresión?

17

Hace unos días, un psicólogo-investigador mío me contó sobre su método para seleccionar variables al modelo de regresión lineal. Supongo que no es bueno, pero necesito pedirle a alguien más que se asegure. El metodo es:

Observe la matriz de correlación entre todas las variables (incluida la variable dependiente Y) y elija los predictores X, que se correlacionan más con Y.

No mencionó ningún criterio. P: ¿Tenía razón?

[Creo que este método de selección es incorrecto, debido a muchas cosas, como es la teoría que dice qué predictores deberían seleccionarse, o incluso omitir el sesgo variable (OVB).]

Lil'Lobster
fuente
Sugeriría cambiar el título a "¿Es correcto usar la matriz de correlación para seleccionar predictores para la regresión?" o algo similar para ser más informativo. Un contraejemplo simple a su pregunta es una variable que tiene una correlación de 1 con la variable dependiente; probablemente no le gustaría usar esta en su modelo.
Tim
3
El método tiene algo de lógica, pero solo funciona si está restringido a seleccionar exactamente un regresor. Si puede seleccionar algunos, este método se rompe. Esto se debe a que una combinación lineal de unas pocas X que se correlacionan débilmente con Y puede tener una correlación mayor con Y que una combinación lineal de unas pocas X que se correlacionan fuertemente con Y. Recuerde que la regresión múltiple se trata de combinaciones lineales, no solo individuales efectos ...
Richard Hardy
1
La correlación es solo una pendiente de regresión estandarizada para regresión simple con una variable independiente. Entonces, este enfoque solo le permite encontrar la variable independiente con el mayor valor para el parámetro de pendiente, pero se vuelve más complicado con múltiples variables independientes.
ρX,Y=Cov(X,Y)σXσY
β^1=Cov(X,Y)σX
Tim
2
Estas respuestas confirman mi pensamiento sobre este 'método', sin embargo, muchos psicólogos usan este tipo de selección de variables :(
Lil'Lobster
Esto suena como el 'Leekasso' .
steveo'america

Respuestas:

17

Si, por alguna razón, va a incluir solo una variable en su modelo, entonces seleccionar el predictor que tiene la mayor correlación con tiene varias ventajas. De los posibles modelos de regresión con un solo predictor, este modelo es el que tiene el coeficiente de regresión estandarizado más alto y también (dado que R 2 es el cuadrado de r en una regresión lineal simple ) el coeficiente de determinación más alto .yR2r

Pero no está claro por qué querría restringir su modelo de regresión a un predictor si tiene datos disponibles para varios. Como se menciona en los comentarios, solo mirar las correlaciones no funciona si su modelo puede incluir varias variables. Por ejemplo, a partir de esta matriz de dispersión, podría pensar que los predictores para que debe incluir en su modelo son 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.yx1x2x3

Diagrama de dispersión matriz de variables correlacionadas

Pero se equivocaría: de hecho, en este ejemplo, depende de dos variables independientes, x 1 y x 3 , pero no directamente en x 2 . Sin embargo, x 2 está altamente correlacionado con x 1 , lo que lleva a una correlación con y también. Mirando la correlación entre y y x 2 de forma aislada, esto podría sugerir que x 2 es un buen predictor de y . Pero una vez que los efectos de x 1 se dividen al incluir x 1yx1x3x2x2x1yyx2x2yx1x1 en el modelo, no queda tal relación.

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 ***

x1x2x2x1x3x3

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

yx1x2x3x4x1x2x3x4yy en realidad puede encontrar la variable que no pertenece en absoluto al modelo.

Lepisma
fuente
Pero ... todo esto se aplica a la situación, cuando este 'compañero psicólogo' elige, digamos, 4 de 10 variables X, que se correlacionan altamente con Y (coeficientes de correlación <0.7), dejando otras seis X que se correlacionan moderadamente o no tanto con Y?
Lil'Lobster
1
y
0

Puede ejecutar un análisis de regresión gradual y dejar que el software elija las variables en función de los valores de F. También puede mirar el valor R ^ 2 ajustado cuando ejecuta la regresión cada vez, para ver si agrega alguna nueva variable que contribuya a su modelo. Su modelo puede tener el problema de la multicolinealidad si solo utiliza la matriz de correlación y elige variables con una fuerte correlación. ¡Espero que esto ayude!

learning_stats
fuente
66
La selección por pasos conduce a los mismos problemas que el método descrito por OP: stata.com/support/faqs/statistics/stepwise-regression-problems también tenga en cuenta que la pregunta era sobre este cierto método y no sobre la búsqueda de métodos alternativos.
Tim
2
Este es un método muy básico para la selección del modelo: si su objetivo es estrictamente la explicación de la varianza, puede ser apropiado usar R2 paso a paso, pero si está interesado en la inferencia, predicción, prueba de hipótesis, etc., entonces debe pensar mucho más allá de R2 (e incluso ignorar R2).
robin.datadrivers