Selección paso a paso e importancia de los predictores

Selección paso a paso e importancia de los predictores

oct´17 Rosana Ferrero 0 comentarios

En la entrada anterior hablábamos de cómo construir el modelo adecuado para resolver el problema de tu investigación.

Vimos que existen distintas formas de seleccionar de manera automática las variables a retener en tu modelo. Y cómo tener cuidado para obtener buenos resultados. Tomar las riendas y no buscar recetas.

Si te lo perdiste aquí tienes la entrada:

¿Cómo seleccionar las variables adecuadas para tu modelo?

Hoy vamos a detallar un poco más cómo realizar una selección automática de variables predictoras para un modelo de regresión lineal múltiple y luego cómo evaluar la importancia relativas de los predictores seleccionados.

Tabla de contenidos

Métodos de selección de variables

Los métodos más comunes de selección de variables son:

Eliminación hacia atrás (Backward Stepwise Regression).

  • Se introducen todas las variables en la ecuación y después se van excluyendo una tras otra.
  • En cada etapa se elimina la variable menos influyente según el contraste individual (de la t o de la F).

Selección hacia adelante (Fordward Stepwise Regression).

  • Las variables se introducen secuencialmente en el modelo.
  • La primera variable que se introduce es la de mayor correlación (+ o -) con la variable dependiente.
  • Dicha variable se introducirá en la ecuación solo si cumple el criterio de entrada.
  • A continuación se considera la variable independiente cuya correlación parcial sea la mayor y que no esté en la ecuación.
  • El procedimiento termina cuando ya no quedan variables que cumplan el criterio de entrada.

Pasos sucesivos (Stepwise Regression).

  • Este método es una combinación de los procedimientos anteriores.
  • En cada paso se introduce la variable independiente que no se encuentre ya en la ecuación y que tenga la probabilidad para F más pequeña (i.e. hacia adelante).
  • Las variables ya introducidas en la ecuación de regresión pueden ser eliminadas del modelo (i.e. hacia atrás).
  • El método termina cuando ya no hay más variables candidatas a ser incluidas o eliminadas.

Criterios de selección de variables

Cuando se dispone de muchas variables explicativas potenciales, las estrategias de regresión anteriores definen normalmente un subconjunto posible de modelos y el problema radica en seleccionar el mejor entre ellos.

Para ello se puede utilizar distintos estadísticos, como el criterio de información de Akaike AIC, el citerior de información Bayesiana BIC, el coeficiente de determinación R2, el coeficiente de determinación corregido R2aj, la varianza residual o el estadístico Cp de Mallows.

Ejemplo de aplicación en R

Selección de variables explicativas

El programa R-project, al igual que otros programas (SPSS, SAS, StatSoft Statistica, etc.), cuenta con librerías específicas para la selección de variables explicativas. 

  • La step del paquete stats y stepAIC del paquete MASS, que permite seleccionar el método mediante el argumento direction = c("both", "backward", "forward"). Utilizan el AIC como criterio de selección de variables.
  • En la función regsubsets del paquete leaps, puedes seleccionar el mejor modelo en base a los siguientes criterios: rsq (r-squared for each model), rss (Residual sum of squares for each model), adjr2 (Adjusted r-squared),  cp (Mallows’ Cp), o bic (Schwartz’s information criterion, BIC). Y mediante distintos métodos también:  "exhaustive", "backward", "forward", "seqrep".
  • También está la función leaps del paquete leaps, que permite realizar todas las regresiones con subconjuntos de variables (ver package).
  • La función eleaps del paquete subselect permite realizar la selección de variables mediante ocho criterios diferentes (ver vignettes).

Sin embargo, algunos investigadores plantean que la selección del modelo mediante un criterio automático no es recomendable (e.g. Peña 1998).

La práctica, dicen, muestra que los buenos modelos suelen coincidir con cualquier criterio razonable y la selección final del modelo es mejor hacerla en base a su adecuación lógica a la realidad que describe.

Si esto no es suficiente, recomiendan utilizar criterios de validación externa.

Te dejo un ejemplo con los datos swiss y el paquete leaps.

Los datos Swiss presentan una medida estandarizada de la fecundidad e indicadores socioeconómicos para cada una de las 47 provincias francófonas de Suiza hacia 1888. Tenemos 47 observaciones sobre 6 variables (columnas), cada una de las cuales está en porcentaje, es decir, en [0, 100].

  • Fertility: Ig, «medida estandarizada común de fertilidad»
  • Agriculture: % de varones que participan en la agricultura como ocupación
  • Examination: % de reclutas que reciben la calificación más alta en el examen del ejército
  • Education: % educación más allá de la escuela primaria para los reclutas.
  • Catholic: % ‘católico’ (en contraposición a ‘protestante’).
  • Infant.Mortality nacidos vivos que viven menos de 1 año.

Todas las variables excepto ‘Fertilidad’ se dan como proporciones de la población. Veamos ahora cómo seleccionar el mejor subconjunto de variables predictoras para explicar el índice de fecundidad en estas provincias.

> library(leaps)
>
> data(swiss)
>
> # para estimar la mejor selección de predictores con el método forward
>
> summary(Forward<-regsubsets(as.matrix(swiss[,-1]),swiss[,1],
+
+ nbest = 1, # 1 best model for each number of predictors
+
+ nvmax = NULL, # NULL for no limit on number of variables
+
+ method=»forward»)) # method=c(«exhaustive», «backward», «forward», «seqrep»)
Subset selection object
5 Variables (and intercept)
Forced in Forced out
Agriculture FALSE FALSE
Examination FALSE FALSE
Education FALSE FALSE
Catholic FALSE FALSE
Infant.Mortality FALSE FALSE
1 subsets of each size up to 5
Selection Algorithm: forward
Agriculture Examination Education Catholic Infant.Mortality
1 ( 1 ) " " " " "*" " " " "
2 ( 1 ) " " " " "*" "*" " "
3 ( 1 ) " " " " "*" "*" "*"
4 ( 1 ) "*" " " "*" "*" "*"
5 ( 1 ) "*" "*" "*" "*" "*"

Es decir, el modelo 1 incluye solo la variable Education, el modelo 2 la variable Education y Catholic, el modelo 3 agrega la variable Infant.Mortality, el modelo 4 a la variable Agricultura y el 5 y último considera todas las 5 variables prodictivas.

Veamos ahora cuál es la "performance" de cada uno de estos modelos para elegir el mejor:


> # para ver los valores de cada criterio en cada modelo

> summary(Forward)$rsq 
[1] 0.4406156 0.5745071 0.6625438 0.6993476 0.7067350
> 
> summary(Forward)$rss
[1] 4015.236 3054.169 2422.245 2158.069 2105.043
> 
> summary(Forward)$adjr2
[1] 0.4281849 0.5551665 0.6390004 0.6707140 0.6709710
> 
> summary(Forward)$cp
[1] 35.204895 18.486158 8.178162 5.032800 6.000000
> 
> summary(Forward)$bic
[1] -19.60287 -28.61139 -35.65643 -37.23388 -34.55301


#mejoran los valores de los estadísticos a medida que agregamos variables predictivas, pero los saltos (las ventajas) son cada vez menores. Por ejemplo, en el R2adj a partir del 4º modelo el aumento en el R2adj no es demasiado grande. Podríamos quedarnos con el modelo 4 por ser más parsimonioso.

> 

> # Si quieres ver qué modelo tuvo el mayor adjr2
> 
> summary.out<-summary(Forward)
> 
> which.max(summary.out$adjr2)
[1] 5
> 
> summary.out$which[5,]
 (Intercept) Agriculture Examination Education Catholic 
 TRUE TRUE TRUE TRUE TRUE 
Infant.Mortality 
 TRUE

El mejor modelo incluye las 5 variables, pero el salto recuerda que la mejoría en el R2adj no es grande respecto al modelo con

# Si quieres graficar los resultados para cada criterio

> library(car)
> 
> layout(matrix(1:2, ncol = 2))
> 
> ## Adjusted R2
> 
> res.legend <-
+ 
+ subsets(Forward, statistic="adjr2", legend = FALSE, main = "Adjusted R^2")
> 
> ## Mallow Cp
> 
> res.legend <-
+ 
+ subsets(Forward, statistic="cp", legend = FALSE, main = "Mallow Cp")
> 
> abline(a = 1, b = 1, lty = 2)
> 
> 
> 
> res.legend
 Abbreviation
Agriculture A
Examination Ex
Education Ed
Catholic C
Infant.Mortality I
> 
> 

Vemos que el 4º y 5º modelo son indistinguibles, nos quedaríamos entonces con el 4º.

Adaptado de RStudio.

Puedes consultar en la ayuda del paquete leaps o en la web para más ejemplos.

Importancia relativa de los predictores

La función calc.relimp calcula la importancia relativa de los predictores para un modelo lineal.

La importancia relativa es la cuantificación de la contribución individual de una variable predictora al modelo de regresión múltiple.

Esta función define la importancia relativa como la contribución proporcional que cada predictor hace al R2 considerando su efecto directo (i.e. su correlación con la respuesta) y su efecto indirecto cuando se combina con otras variables predictoras en la ecuación de regresión.

  • Si se utiliza el estadístico lmg se obtiene la contribución promedio al coeficiente de determinación R2 para cada variable predictora.
  • Si se utiliza el estadístico pmvd se obtiene la descomposición de la varianza marginal proporcional para cada predictor, que se interpreta como la media ponderada.
  • Por último puedes seleccionar la opción pratt que es el producto del coeficiente estandarizado y la correlación.

Ejemplo de aplicación en R

Veamos el ejemplo de stackloss que son datos operacionales de una planta para la oxidación de amoníaco a ácido nítrico. Tenemos una base de datos con 21 observaciones sobre 4 variables (columnas):

  • Air Flow: Flujo de aire de refrigeración
  • Water Temp: Temperatura de entrada de agua de refrigeración
  • Acid Conc: Concentración de ácido [por 1000, menos 500]
  • stack.loss: pérdida de la pila

Queremos explicar la pérdida en la pila al oxidar de amoníaco a ácido úrico según las variables predictoras Air Flow, Water Temp y stack.loss.

En el primer cuadro de métricas de importancia relativa obtienes la columna last indica la contribución de cada variable cuando ésta se incluye en el último lugar (llamada «utilidad»), la columna first indica la contribución de cada variable cuando se incluye en primer lugar, y pratt es la multiplicación entre el coeficiente estandarizado y la correlación, otra medida de importancia relativa.

Luego viene el cuadro de los de los coeficientes promedio para los distintos modelos que varían en tamaño (en número de predictores que incluyen) donde la primer columna 1X indica los coeficientes de la regresión estandarizados cuando solo agregamos una variable a la vez (que coinciden con el coeficiente de correlación con la respuesta), y la segunda columna 2Xs indica dichos coeficientes cuando incluimos ambos predictores. Es decir, esta tabla te indica cómo es el modelo para cada combinación de predictores. Obviamente los coeficientes cambiarán a medida que agregamos más predictores al modelo.

La importancia relativa de Air.Flow es del 54.36% y Water.Temp del 45.64% según el método lmg.

Puedes obtener más información en la viñeta del paquete (aquí) y/o en la siguiente lista de referencias.

¡Espero tus comentarios! Saludos

Referencias

Artículos Relacionados

¿Cómo seleccionar las variables adecuadas para tu modelo?

¿Qué modelo de regresión debería elegir?

0 comentarios

¹ Todos los campos son obligatorios.
² Tu correo electrónico no será publicado.

Nadie ha publicado ningún comentario aún. ¡Se tu la primera persona!

Te llamamos

Introduce los siguientes datos y nos pondremos en contacto contigo para atender tus dudas sin compromiso.

Te llamamos

Muchas gracias por solicitar información.
Te contactaremos lo antes posible.

Diseño web: Albin Soft.