Técnicas para ‘Big Data’ en Economía - Curso 2023/24
Universidad de Alicante
Dpto. de Fundamentos del Análisis Económico. Universidad de Alicante
MCO puede estimar modelos con muchos regresores (ej., polinomios e interacciones para relaciones no lineales), pero ¿qué variables incluimos?
Cuando crece el número de parámetros \(\small k\) relativo al de observaciones \(\small n\):
Selección de variables: excluir variables irrelevantes y ajustar ese modelo reducido por mínimos cuadrados ordinarios
Restricción de los coeficientes estimados puede reducir la varianza, a costa de un aumento insignificante del sesgo (Regresión Regularizada/Penalizada)
Reducción de la dimensionalidad: usar \(\small M<k\) combinaciones lineales (proyecciones) y estimar por mínimos cuadrados (PCR, PLS)
Los métodos de ajuste ofrecen una *estimación indirecta del error de prueba, en la muestra de entrenamiento mediante supuestos (erróneos?)
El \(\small SCR\) de entrenamiento siempre se reduce si el modelo es más flexible \(\Rightarrow\) añadir una penalización por número de parámetros
Criterio de Información de Akaike: \(\small AIC = \frac{1}{n}\left( SCR + 2 k \widehat{\sigma}^2 \right)\)
Criterio de Información Bayesiano: \(\small BIC = \frac{1}{n}\left( SCR + log(n) k \widehat{\sigma}^2 \right)\)
\(\small R^2-ajustado = 1- \frac{SCR/(n-k-1)}{SCT/(n-1)}\)
En MCO: \(\small \min_{\beta} SCR={\sum_{i=1}^{n}\left(y-\widehat{y}\right)^2}\)
En Regresión Penalizada o Regularizada, se añade una restricción que limite (reduzca) los coeficientes estimados \[\small \min_{\beta} SCR \text { sujeto a }R(\beta) \leq t\]
donde \(R(\cdot)\) es una medida del tamaño de los coeficientes
NO se penaliza a la constante (media de \(\small Y\)), solo el impacto de \(\small X\)
La restricción limita la importancia de las \(\small X\) para explicar \(\small Y\): empeora el ajuste (sesgo), pero reduce la varianza \(\Rightarrow\) previene “overfitting”
Permite ajustar un modelo que contenga todos los regresores
Reescribiendo el problema (Lagrangiano): \(\small \min_{\beta} SCR+\lambda R(\beta)\)
\(\lambda \geq 0\) es un parámetro de ajuste (“tuning parameter”)
Método | Penalización por tamaño = \(R(\boldsymbol{\beta})\) | Norma |
---|---|---|
MCO | 0 | |
LASSO | \(\lVert\boldsymbol{\beta}\rVert_1=\sum_{j=1}^{k}|\beta_j|\) | \(\ell_1\): \(||\boldsymbol{\beta}||_1=\sum_{j=1}^{k}|\beta_j|\) |
Ridge Regression | \(\lVert\boldsymbol{\beta}\rVert_2^2 =\sum_{j=1}^{k}\beta_j^2\) | \(\ell_2\): \(||\boldsymbol{\beta}||_2=\sqrt{\sum_{j=1}^{k}\beta_j^2}\) |
Red Elásica | \(\alpha\lVert\boldsymbol{\beta}\rVert_1 + (1-\alpha)\lVert\boldsymbol{\beta}\rVert_2^2\) |
\(\small \widehat{\beta}^R_{\lambda} = \arg \min_\beta SCR + \lambda \sum_{j=1}^{k}\beta_j^2\)
\[ \small \widehat{\beta}^L_{\lambda} = \arg \min_\beta SCR + \lambda \sum_{j=1}^{k}|\beta_j| \]
Tratamos de ajustarnos a los datos minimizando SCR, PERO se recompensa a los coeficientes cercanos a cero
Para que todos los coeficientes estén en la misma escala (misma “cercanía a cero), debemos estandarizar los regresores: \(\small \widetilde{x}_{ij} = \frac{x_{ij}}{\sqrt{ \frac{1}{n}\sum_{i=1}^n(x_{ij}-\bar{x}_j)^2}}\)
¿Por qué la regularización mejoraría el ajuste sobre MCO?
\(\small \lambda\)= importancia de la penalización (cuanto se contraen los coeficientes)
\(\small \lambda\) pequeño (cercano a MCO): mayor flexibilidad (\(-\) sesgo, \(+\) varianza)
\(\small \lambda >> 0\), todos los coeficientes a cero: menor flexibilidad (\(+\) sesgo, \(-\) varianza)
Regularización funciona mejor cuando MCO tiene alta varianza: intercambia un poco más de sesgo por una gran reducción de la varianza
“Ridge Regression” sigue incluyendo todos los regresores (ningún coeficiente exactamente cero): puede complicar la interpretación con muchos
LASSO (least absolute shrinkage and selection operator): también contrae hacia cero, algunos exactamente cero (selección de variables)
“Ridge regression” domina con muchos regresores igualmente importantes
LASSO con pocos regresores importantes y muchos inútiles
LASSO es una alternativa a los contrastes de significatividad (sin formalización estadística)
Notad que LASSO es un método orientado a la predicción: NO se debe usar para afirmaciones de causalidad (los coeficientes están sesgados)
PERO se puede estimar por MCO la especificación de variables seleccionada por LASSO
Elegir un rango de valores para \(\small \lambda\)
Calcular el error mediante validación cruzada para cada valor de \(\small \lambda\)
Seleccionar el valor con menor error (probar varios rangos para encontrar forma de U)
Volver a ajustar el modelo usando todas las observaciones y el valor del parámetro de ajuste seleccionado.
Ventaja sobre la selección de regresores: SOLO necesitamos ajustar un modelo para cada valor de \(\small \lambda\)
Regla de parquedad paramétrica: dado un conjunto de modelos igualmente buenos (dentro de un error estándar del menor error), elegir el más simple
glmnet
para regresión linealglmnet
para regresión logísticacenso <- read_csv("data/census.csv") %>%
mutate(across(where(is.character), ~parse_factor(.x)),
income = if_else(income == ">50K", 1, 0))
x <- model.matrix(data = censo,
income ~ poly(age, 3) + log(hours_per_week)*sex +
education_1*race + occupation*workclass)
fit.glmreg <- glmnet(x = x, y = censo$income,
family = "binomial",
lambda=0.001, alpha=1)
fit.glmreg$beta