Ir al contenido
σestadistica.ar

Caso con datos reales

Un modelo del ingreso, construido paso a paso

De la regresión simple a la múltiple sobre datos de la EPH: qué gana cada variable, por qué conviene el logaritmo y qué pasa al agregar ruido puro.

La pregunta

¿Qué explica el ingreso de la ocupación principal?

14.129 ocupados de 18 años o más de la EPH del primer trimestre de 2026, que declararon a la vez ingreso positivo y horas trabajadas.

Modelo 1: una sola variable

ingreso^=411.693+15.610×horas\widehat{\text{ingreso}} = 411.693 + 15.610 \times \text{horas}

R2=0,062R^2 = 0{,}062. Cada hora semanal adicional se asocia a $15.610 más de ingreso mensual, y las horas explican el 6 % de la variabilidad.

Modelo 2: cinco variables

Agregando edad, sexo y nivel educativo —estas dos últimas como variables dummy—:

TérminobbEEttpp
Constante−233.13443.234−5,397×1087 \times 10^{-8}
Horas semanales14.55750628,77<0,001< 0{,}001
Edad (años)10.07663615,85<0,001< 0{,}001
Mujer−269.85916.647−16,21<0,001< 0{,}001
Secundario249.54124.90710,02<0,001< 0{,}001
Superior726.49025.83228,12<0,001< 0{,}001

R2=0,146R^2 = 0{,}146, más del doble que el modelo simple.

Cómo se leen. Cada coeficiente es el efecto de esa variable manteniendo las demás constantes:

  • Una hora semanal más: +$14.557, a igual edad, sexo y educación.
  • Un año más de edad: +$10.076.
  • Ser mujer: −$269.859, comparando personas con las mismas horas, edad y educación.
  • Nivel superior contra primario: +$726.490.

Los residuos no se portan bien

$-0.2 M $0.4 M $0.9 M $1.4 M $1.9 M -2.8 M -1.4 M +0.0 M +1.4 M +2.8 M Ingreso predicho por el modelo Residuo
Residuos contra valores predichos: el embudo característico de la heterocedasticidad.Muestra de 3.000 de los 14.129 casos. Los ejes se recortan para que la nube sea legible.Fuente: EPH continua, 1er trimestre de 2026, INDEC. Elaboración propia.
DiagnósticoModelo en pesos
Asimetría de los residuos12,33
Breusch-Paganp=2×104p = 2 \times 10^{-4}

Los residuos son muy asimétricos y su dispersión crece con el valor predicho: dos supuestos violados a la vez.

Modelo 3: el logaritmo cambia todo

La misma especificación sobre log(ingreso)\log(\text{ingreso}):

TérminobbEfecto
Horas0,0213+2,2 % por hora semanal
Edad0,0081+0,8 % por año
Mujer−0,2939−25,5 %
Secundario0,2987+34,8 %
Superior0,7766+117,4 %

R2=0,308R^2 = 0{,}308 contra 0,146, y la asimetría de los residuos cae de 12,33 a −0,54.

Qué pasa al agregar ruido puro

Se agregan al modelo 2 tres variables generadas al azar, sin ninguna relación con el ingreso:

ModelokkR2R^2R2R^2 ajustadoAICBIC
Solo horas10,061580,06151430.126430.141
+ edad20,072090,07196429.969429.992
+ sexo30,079630,07943429.856429.886
+ educación50,146310,14601428.797428.842
+ 3 variables de ruido80,146490,14601428.800428.868

Es la demostración empírica de por qué el R2R^2 crudo no sirve para comparar modelos con distinta cantidad de variables.

Validación fuera de la muestra

Entrenando con el 70 % de los casos y evaluando en el 30 % restante:

R2R^2
Entrenamiento (9.890 casos)0,139
Prueba (4.239 casos)0,173

No hay sobreajuste: el modelo funciona igual o mejor con datos que no vio. Es lo esperable con 14.000 casos y solo cinco predictores.

Un modelo para una variable binaria

Cambiando la pregunta a ¿quién tiene empleo registrado?, sobre 13.864 asalariados, con regresión logística:

TérminobbOdds ratioIC 95 % del OR
Edad0,04601,0471,044 – 1,051
Mujer−0,48120,6180,573 – 0,667
Secundario0,92802,5302,244 – 2,852
Superior1,99547,3556,470 – 8,363
  • Cada año de edad multiplica la chance de estar registrado por 1,047.
  • Ser mujer la multiplica por 0,618: una reducción del 38 %.
  • Tener nivel superior la multiplica por 7,4 respecto del primario.

El pseudo R2R^2 de McFadden es 0,104, que para datos individuales es un valor razonable.

Lo que el modelo no dice

Ninguno de estos coeficientes prueba causalidad. La brecha de $269.859 por sexo es una asociación ajustada por horas, edad y educación: no ajusta por ocupación, sector, antigüedad ni informalidad, y no puede distinguir discriminación salarial de segregación ocupacional.

Reproducirlo

# R
m1 <- lm(ingreso ~ horas, data = d)
m2 <- lm(ingreso ~ horas + edad + mujer + secundario + superior, data = d)
m3 <- lm(log(ingreso) ~ horas + edad + mujer + secundario + superior, data = d)

summary(m2); AIC(m2); BIC(m2)
plot(m2)                                  # los cuatro diagnósticos
lmtest::bptest(m2)                        # Breusch-Pagan
car::vif(m2)                              # multicolinealidad

ml <- glm(registrado ~ edad + mujer + secundario + superior,
          data = a, family = binomial)
exp(cbind(OR = coef(ml), confint(ml)))
# Python
import statsmodels.formula.api as smf
m2 = smf.ols("ingreso ~ horas + edad + mujer + secundario + superior",
             data=d).fit()
m2.summary()

ml = smf.logit("registrado ~ edad + mujer + secundario + superior",
               data=a).fit()

El script completo es datos/eph/preparar-regresion-m13.py, con semilla 2026.