Ir al contenido
σestadistica.ar

estadistica.ar · Enciclopedia de Estadística en españolhttps://estadistica.ar/conceptos/regresion-penalizada

M13 · RegresiónAvanzadoProcedimiento

Regresión penalizada: ridge, lasso y elastic net

Estimar y seleccionar a la vez encogiendo los coeficientes: qué hace cada penalización, cómo se elige lambda y cuándo le gana al stepwise.

Por Jorge Luis Montivero, Licenciado en Estadística · Mu3Sigma

1 · La idea

Mínimos cuadrados busca los coeficientes que minimizan la suma de cuadrados residual. La regresión penalizada le agrega un castigo por el tamaño de los coeficientes:

min⁡  ∑(yi−y^i)2⏟ajuste  +  λ⋅P(β)⏟penalizacioˊn\min \; \underbrace{\sum (y_i - \hat{y}_i)^2}_{\text{ajuste}} \; + \; \underbrace{\lambda \cdot P(\beta)}_{\text{penalización}}

2 · Las tres penalizaciones

MétodoP(β)P(\beta)Qué hace
Ridge∑βj2\sum \beta_j^2encoge todos; ninguno llega a cero
Lasso∑∥βj∥\sum \|\beta_j\|encoge y anula algunos: selecciona
Elastic netmezcla de las dosselecciona y reparte entre correlacionadas
−0,5 0,0 0,5 1,0 1,5 10^−3 10^−2 10^−1 1 Ridge: encoge, no anula −0,5 0,0 0,5 1,0 1,5 10^−3 10^−2 10^−1 1 Lasso: encoge y anula desde acá, 3 en cero Penalización λ (escala logarítmica): a la izquierda, mínimos cuadrados; a la derecha, todo encogido
Seis coeficientes a medida que crece λ. Con ridge todos se achican de a poco y ninguno llega a cero; con lasso van cayendo a cero uno por uno.Datos ilustrativos: 200 casos, seis predictoras estandarizadas, dos de ellas sin efecto y dos correlacionadas.Fuente: Simulación propia.

3 · Hay que estandarizar

La penalización castiga el tamaño del coeficiente, y ese tamaño depende de las unidades: una variable en pesos tiene coeficientes minúsculos y una en millones de pesos, enormes. Sin estandarizar, la penalización recae arbitrariamente sobre las variables de escala chica.

La constante nunca se penaliza.

4 · Cómo se elige lambda

Por validación cruzada: se prueba una grilla de valores y se queda el que minimiza el error de predicción fuera de la muestra.

λ\lambdaResultado
0mínimos cuadrados común
chicoencogimiento leve
el de validación cruzadael equilibrio
grandetodos los coeficientes cerca de cero
→∞\to \inftysolo queda la constante

5 · Contra el stepwise, medido

El módulo dedica dos entradas a mostrar que la selección por pasos falla. La pregunta práctica es si la penalización lo arregla, y la respuesta depende de cuántas candidatas haya.

Error de predicción fuera de muestra, con 100 casos y 5 predictoras reales entre pp candidatas —el mínimo alcanzable es 1,00—:

CandidatasModelo completoStepwiseRidgeLasso
101,1261,0791,1201,108
301,4411,1581,3671,184
602,5881,3901,7901,256
9012,0603,7482,1611,295

6 · Sobre ruido puro

El otro problema del stepwise es que inventa hallazgos. Con veinte predictoras sin ninguna relación con YY y cien casos:

Variables seleccionadasDice “no hay nada”
Stepwise1,29 de 2036 %
Lasso1,49 de 2060 %

7 · Cuándo usar cada cosa

SituaciónMétodo
Pocas candidatas, objetivo explicarmínimos cuadrados, con las variables que la teoría indique
Muchas candidatas, objetivo predecirlasso o elastic net
Predictoras muy correlacionadasridge o elastic net
Más predictoras que casosobligatoriamente penalizada
Hace falta un valor p del coeficienteninguna: penalizar no da inferencia

8 · Errores frecuentes

  • No estandarizar las predictoras antes de penalizar.
  • Elegir lambda mirando el error en los mismos datos con que se ajustó.
  • Interpretar un coeficiente penalizado como una estimación insesgada del efecto.
  • Reportar valores p de un modelo penalizado.
  • Usar lasso con predictoras muy correlacionadas esperando que elija la “correcta”: elige una casi al azar.
  • Penalizar con pocas candidatas, donde no aporta nada.
  • Hacer la validación cruzada de lambda fuera de la validación general, que es la misma fuga medida en sobreajuste y validación.

9 · En el software

# R — glmnet es el estándar. Requiere matriz, no fórmula.
library(glmnet)
X <- model.matrix(y ~ . - 1, data = d)

cv <- cv.glmnet(X, d$y, alpha = 1)      # alpha = 1 lasso, 0 ridge
plot(cv)                                 # el error por lambda
cv$lambda.min; cv$lambda.1se

coef(cv, s = "lambda.1se")               # los coeficientes, muchos en cero

# Elastic net: probar varios alpha
cv.glmnet(X, d$y, alpha = 0.5)
# Python
from sklearn.linear_model import LassoCV, RidgeCV, ElasticNetCV
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline

modelo = make_pipeline(StandardScaler(), LassoCV(cv=5)).fit(X, y)
modelo[-1].alpha_                        # el lambda elegido
modelo[-1].coef_

Seguir leyendo

Cómo citar: Montivero, J. L. (2026). Regresión penalizada: ridge, lasso y elastic net. estadistica.ar. https://estadistica.ar/conceptos/regresion-penalizada

estadistica.ar es gratuita y sin publicidad. Si te sirvió, podés invitar un cafecito por transferencia al alias mu3sigma. Asesoramiento estadístico, encuestas y capacitaciones: m3s.pro · WhatsApp +54 9 383 499-7929.

Cómo citar esta entrada

APA (7.ª edición)

Montivero, J. L. (2026). Regresión penalizada: ridge, lasso y elastic net. estadistica.ar. https://estadistica.ar/conceptos/regresion-penalizada

BibTeX

@misc{estadistica_ar_regresion_penalizada,
  author       = {Montivero, Jorge Luis},
  title        = {{Regresión penalizada: ridge, lasso y elastic net}},
  year         = {2026},
  howpublished = {\url{https://estadistica.ar/conceptos/regresion-penalizada}},
  note         = {estadistica.ar. Consultado el \today},
  urldate      = {2026-09-27}
}

Última actualización: 27 de septiembre de 2026. El contenido está bajo licencia CC BY-NC-SA 4.0: se puede reutilizar citando la fuente y sin fines comerciales.