Introducción al Lenguaje R

Santiago Benitez-Vieyra

Colinealidad, selección de modelos y regularización

modelo completo

Call: lm(formula = CTPEA ~ MTE + FTE, data = dat)

Coefficients:
            Estimate  Std. Error t value  Pr(>|t|)
(Intercept) 66.5838   0.8275     80.461    < 2e-16 ***
MTE          2.2988   0.3363      6.835   1.26e-11 ***
FTE          2.3357   0.2968      7.869   7.53e-15 ***
---
Signif. codes: 0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 9.655 on 1293 degrees of freedom
Multiple R-squared: 0.1663, Adjusted R-squared: 0.1651
F-statistic: 129 on 2 and 1293 DF, p-value: < 2.2e-16

modelos por separado

Call: lm(formula = CTPEA ~ MTE, data = dat)

Coefficients:
            Estimate   Std.Error t value Pr(>|t|)
(Intercept) 69.0110    0.7858     87.83   <2e-16 ***
MTE          3.8349    0.2802     13.68   <2e-16 ***
  
Residual standard error: 9.88 on 1294 degrees of freedom
*Multiple R-squared: 0.1264, Adjusted R-squared: 0.1257*
F-statistic: 187.3 on 1 and 1294 DF, p-value: < 2.2e-16


Call: lm(formula = CTPEA ~ FTE, data = dat)

Coefficients:
            Estimate   Std. Error t value  Pr(>|t|)
(Intercept) 69.3649    0.7332     94.60    <2e-16 ***
FTE          3.5134    0.2460     14.29    <2e-16 ***
  
Residual standard error: 9.825 on 1294 degrees of freedom
*Multiple R-squared: 0.1362, Adjusted R-squared: 0.1355*
F-statistic: 204.1 on 1 and 1294 DF, p-value: < 2.2e-16

modelo con interacción

Call: lm(formula = CTPEA ~ MTE * FTE, data = dat)

Coefficients:
            Estimate  Std. Error t value  Pr(>|t|)
(Intercept) 68.5897   1.6632     41.240   <2e-16 ***
MTE          1.3807   0.7411      1.863    0.0627 .
FTE          1.5474   0.6400      2.418    0.0158 *
MTE:FTE      0.3275   0.2356      1.390    0.1647
---
Signif. codes: 0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 9.652 on 1292 degrees of freedom
Multiple R-squared: 0.1676, Adjusted R-squared: 0.1657
F-statistic: 86.7 on 3 and 1292 DF, p-value: < 2.2e-16

cor(dat$MTE, dat$FTE)
[1] 0.5804445
  • La gente tiene cierta tendencia a encontrar pareja (y tener hijos) con gente que conoció mientras estudiaba. Solo esto ya genera una correlación en el nivel de educación de ambos padres.
  • Conocer el nivel de educación de la madre nos da información sobre el nivel de educación del padre (y viceversa).

Podríamos estar midiendo efectos indirectos si omitimos efectos directos del modelo. Añadir o quitar variables del modelo puede cambiar el valor de los parámetros estimados y su significancia.

Colinealidad

  • El cálculo de los coeficientes se vuelve sensible a pequeñas variaciones en los datos originales.
  • En presencia de colinealidad los errores estándar de los coeficientes son mayores (se inflan), lo que afecta los test estadísticos sobre ellos.
  • Para pensarlo de manera sencilla, si dos variables “independientes” están muy correlacionadas, es muy difícil determinar el efecto directo de cada una.

Cómo detectar la (multi)colinealidad

Inspeccionar la matriz de correlaciones

library(palmerpenguins)
data(penguins); gentoo <- subset(penguins, penguins$species == "Gentoo")
m1 <- lm(body_mass_g ~ bill_length_mm + bill_depth_mm + flipper_length_mm,
         data = gentoo)
cor(gentoo[,c("bill_length_mm", "bill_depth_mm", "flipper_length_mm")],use="complete.obs")
##                   bill_length_mm bill_depth_mm flipper_length_mm
## bill_length_mm         1.0000000     0.6433839         0.6611621
## bill_depth_mm          0.6433839     1.0000000         0.7065634
## flipper_length_mm      0.6611621     0.7065634         1.0000000

Usar r, no P.

library(palmerpenguins)
data(penguins); gentoo <- subset(penguins, penguins$species == "Gentoo")
pairs(gentoo[,c("bill_length_mm", "bill_depth_mm", "flipper_length_mm")], col = 4, pch = 19)

Utilizar factores de inflación de la varianza.

  • La tolerancia (\(t\)) para la variable \(X_{1}\) es sencillamente \(1 – R^2\) de la regresión múltiple donde \(X_{1}\) es tomada como variable respuesta y el resto de las variables \(X\) como predictoras.
  • Los factores de inflación de la varianza (vif) son iguales al inverso de la tolerancia (\(1/t\)).
  • Se pueden tomar como límites \(t < 0.1\) o \(vif > 10\); \(t < 0.2\) o \(vif > 5\). En algunos casos \(vif > 2\) pueden tener un efecto importante.

La raíz cuadrada de un vif indica cuánto más grande es el error estándar del parámetro comparado con cómo sería si el resto de las variables fueran ortogonales respecto a la primera.

library(car)
## Loading required package: carData
vif(m1)
##    bill_length_mm     bill_depth_mm flipper_length_mm 
##          1.996625          2.244212          2.336683

Más sobre la colinealidad.

  • Una variable cualquiera \(X\) siempre estará fuertemente correlacionada con el término cuadrático correspondiente \(X^2\). Una posible solución para minimizar este efecto es centrar la variable X (restarle la media a cada valor, de modo que la nueva media sea 0).
  • Dos variables cualquiera \(X, Z\) siempre estarán correlacionadas con su interacción. La colinealidad sólo se examina en modelos sin interacciones.

Selección de modelos.

Dos objetivos:

  • Explicación: encontrar el set de variables que sean más im portantes para explicar la variación en la respuesta.
  • Predicción: la precisión de nuestras estimaciones serán mejores en un modelo con pocas variables.

Tres Métodos

  • Best subset selection. Encontrar un set de p variables predictoras.
  • Shrinkage. Modelo con todas las p donde algunos coeficientes son “reducidos” a cero.
  • Dimension reduction. Proyección de las p variables en un espacio de menores dimensions (por ej. PCA).

  • Varianza. Cómo puede cambiar el modelo con diferentes datos de entrenamiento. Modelos menos flexibles (más sencillos) tienen menos varianza.
  • Sesgo. Error introducido al momento de enfrentar la vida real (que puede ser extremadamente complicada), utilizando un modelo sencillo.

Best subset selection

Selección basada en criterios

\[AIC = -2 log(likelihood) + 2p\]

\[BIC = -2 log(likelihood) + log(n)p\]

Existe una fauna de criterios muy variada: Cp, DIC, AICc, BICc, \(R^2_{adj}\) etc. También se puede utilizar validación cruzada en vez de un criterio, que estima de forma directa el error de prueba.

Selección de modo forward

Al modelo sólo con intercepto se le incorpora un creciente número de variables, hasta que la adición no provoca mejoras en el criterio elegido. El anteúltimo modelo es por lo tanto el mejor.

Selección de modo backward

Al modelo más completo posible se le remueven variables hasta que la adición no provoca mejoras en el criterio elegido. El último modelo es por lo tanto el mejor.

Búsqueda exhaustiva

Se construyen todos los modelos posibles y se elige el mejor de acuerdo a cierto criterio.

Promediado de modelos

Se construyen todos los modelos posibles y se presenta el set de mejores modelos, dentro de determinado rango de criterios.

¿Por qué usamos criterios y no significancia?

https://xkcd.com/882/

Shrinkage

\[RSS = \sum_{i = 1}^{n}(y_i - \beta_0 - \sum_{j = 1}^{p} \beta_jx_{ij})^2\]

Ridge regression

\[RSS + \lambda \sum_{j = 1}^{p} \beta_j^2\]

Lasso (least absolute shrinkage selector operator)

\[RSS + \lambda \sum_{j = 1}^{p} |\beta_j|\]

  1. Ambos estiman una suma de cuadrados penalizada.
  2. El efecto es contraer los estimadores de \(\beta_{i}\) hacia cero (excepto el intercepto).
  3. Lasso sobresale porque logra que los estimadores de algunas variables se vuelvan exactamente cero, por lo que realiza a la vez selección de variables y de modelos.
  4. Ambos requieren ajustar un parámetro de “afinado” por validación cruzada.

FIN