La esperanza condicional en R
Sesión de estudio del 20 de octubre · Estadística Matemática, Maestría en Economía Aplicada
Hoy no hay sesión por Zoom. Esta página la sustituye: trabájala por tu cuenta. Toma unas dos horas y media. Sigue la numeración del handout de la sesión (secciones 1 a 11.3). Al final hay un adelanto de la tarea.
Cómo usar esta página
La página alterna dos tipos de bloque, igual que en clase:
- Pizarrón (recuadros con título “Pizarrón”): lo que se escribiría en el pizarrón. Cópialo a mano en tu cuaderno; las cuentas se entienden mejor escribiéndolas.
- R: el mismo resultado con números y una gráfica. Esta página corre R directamente en tu navegador (vía webR); no necesitas instalar nada. Presiona Run Code en cada bloque. La primera vez, R tarda unos segundos en cargar. Cada bloque es editable: cambia los valores marcados con
# <-y vuelve a correrlo. Si prefieres RStudio, descarga el script completo.
Todo lo que va después de un # es un comentario: R lo ignora. El símbolo <- guarda lo de la derecha en el objeto de la izquierda; si escribes sólo el nombre del objeto, R lo imprime. Cada bloque corre por sí solo.
Las preguntas de Comprueba tienen una respuesta única; intenta resolverlas antes de abrir la respuesta.
Notación: \(X\) es lo que conocemos (escolaridad, en años) y \(Y\) lo que queremos predecir (salario por hora, en pesos). Trabajamos en pesos, no en logaritmos.
1 De la media a la media condicional
Dos preguntas para empezar. ¿Cuánto gana en promedio alguien con preparatoria? ¿Y si no supieras nada de la persona, qué número dirías? La primera es una esperanza condicional; la segunda, la esperanza de siempre. La CEF (función de esperanza condicional, por sus siglas en inglés) es el mejor predictor de una variable a partir de otra. También es el punto de partida para hablar de efectos causales, aunque no es lo mismo que un efecto causal.
2 Repaso: probabilidad condicional
A mayor escolaridad, la distribución de salarios se recorre hacia arriba: la probabilidad de ganar 120 pasa de 0.12 a 0.20 y a 0.45.
En sentido inverso está Bayes: entre quienes ganan 120, ¿qué fracción tiene 12 años? Es la celda entre el total de su columna, \(0.18/0.28=0.643\). El denominador de la fórmula de Bayes, \[\mathbb{P}(Y=y)=\sum_x \mathbb{P}(Y=y\mid X=x)\,\mathbb{P}(X=x),\] es la primera aparición de la idea central de hoy: un total es un promedio de lo que pasa dentro de cada grupo, ponderado por el tamaño del grupo.
Comprueba. Con la tabla, calcula \(\mathbb{P}(Y=40\mid X=6)\) y \(\mathbb{P}(X=6\mid Y=40)\).
\(\mathbb{P}(Y=40\mid X=6)=0.12/0.25=0.48\) (renglón). \(\mathbb{P}(X=6\mid Y=40)=0.12/0.27=0.444\) (columna). Son preguntas distintas: entre quienes tienen 6 años, casi la mitad gana 40; entre quienes ganan 40, 44% tiene 6 años.
3 Predecir sin información
La media es el modelo mental más común (“un trabajador típico gana el promedio”), y su error es toda la varianza de \(Y\). La pregunta del resto de la sesión es cuánto baja ese error si usamos información sobre cada persona.
El resultado depende del criterio: si el costo de equivocarse es proporcional al tamaño del error y no a su cuadrado, la mejor constante es la mediana (sección 3.1 del handout, sólo como lectura). En adelante nos quedamos con el error cuadrático y la media.
Comprueba. ¿Cuál es el error cuadrático medio de predecir \(c=100\) para todos?
\(908.2+(75.9-100)^2=908.2+580.8=1489.0\). En R: ecm(100).
4 Predecir con información: la CEF
Haz tú la cuenta de \(m(9)\) antes de correr el bloque.
Las dos funciones contestan preguntas distintas: quienes tienen 12 años ganan en promedio 88.75, y quienes ganan 120 tienen en promedio 10.6 años. Una no se obtiene despejando la otra.
5 La ley de esperanzas iteradas
En palabras: el promedio de todos es el promedio de los promedios de los grupos, ponderado por el tamaño de cada grupo. La esperanza de adentro promedia \(Y\) dentro de cada grupo; la de afuera promedia esos resultados sobre la distribución de \(X\).
La composición importa: paradoja de Simpson
Como el promedio general mezcla promedios de grupos con pesos que pueden ser distintos, una comparación puede ir en un sentido dentro de cada grupo y en el sentido opuesto en el agregado.
Dentro de cada nivel, las mujeres ganan más (+2 y +4); en el agregado ganan 21.6 menos, porque muchas menos llegaron a la universidad.
Comprueba. Cambia pM <- c(0.4, 0.6) (la misma escolaridad que los hombres). ¿Cuánto vale ahora la brecha EM - EH?
\(0.4(62)+0.6(124)=99.2\) contra \(96\): la brecha es \(+3.2\). La parte de composición se vuelve cero y la brecha cambia de signo.
6 Propiedades de la esperanza condicional
La propiedad 5 se usa una y otra vez: para calcular un promedio que involucra a \(Y\) y a funciones de \(X\), puedes reemplazar \(Y\) por su promedio condicional.
7 Varianza total
En esta tabla, la escolaridad está asociada con 13.7% de la varianza del salario: la mayor parte de la variación salarial ocurre entre personas con la misma escolaridad. Lo mismo pasa en datos reales, como vas a ver en la tarea.
8 La CEF es el mejor predictor
Ninguna regla baja de 784. Una familia útil para ver por qué: \(g_\lambda(x)=\mathbb{E}[Y]+\lambda\,(m(x)-\mathbb{E}[Y])\) va de la media (\(\lambda=0\)) a la CEF (\(\lambda=1\)). Su error es \(784+(1-\lambda)^2\,124.2\).
Comprueba. ¿Por qué \(\lambda=0\) y \(\lambda=2\) dan el mismo error? ¿Cuánto vale el error con \(\lambda=0.5\)?
Porque \((1-\lambda)^2\) es simétrico alrededor de 1: exagerar al doble las diferencias entre grupos es tan malo como ignorarlas. Con \(\lambda=0.5\): \(784+0.25(124.2)=815.05\).
9 El error de la CEF
Cuidado: media condicional cero no es independencia. El promedio del error no depende de \(X\), pero su tamaño sí puede depender. En el ejemplo de abajo, con \(X=0\) el error vale \(\pm1\) y con \(X=1\) vale \(\pm3\): conocer \(X\) dice exactamente qué tan grande es el error.
10 La CEF de una variable binaria
El error de una CEF binaria, \(D-p(X)\), tiene varianza condicional \(p(x)(1-p(x))\): es heterocedástico salvo que \(p(x)\) sea constante.
11 Estimar la CEF
Hasta aquí conocíamos la población. Con datos, hay que estimar \(m(x)\).
11.1 Con \(X\) discreta: un promedio por grupo
Una población simulada: cuatro niveles de escolaridad, una habilidad que crece en promedio con \(X\), y un ruido cuya dispersión crece con \(X\).
Corre el bloque otra vez con n <- 200. Los intervalos se ensanchan, sobre todo en el grupo de 16 años, que es el más chico y el más disperso.
Comprueba. Si \(\sigma(x)=30\), ¿cuántas observaciones necesita el grupo para que el error estándar sea de 2 pesos?
\(30/\sqrt{n_x}=2\), así que \(\sqrt{n_x}=15\) y \(n_x=225\).
11.2 Con \(X\) continua: sesgo contra varianza
Corre el bloque con K <- 2, 8 y 40. Con 2, las 30 estimaciones coinciden entre sí pero no siguen la curva (sesgo). Con 40, siguen la curva pero brincan mucho (varianza). El siguiente bloque calcula el error para muchos valores de \(K\); en el navegador tarda alrededor de medio minuto.
11.3 Muchas variables: la maldición de la dimensionalidad
La salida es suponer algo sobre la forma de \(m\) y usar todas las observaciones a la vez. Qué forma suponer, y qué se estima cuando la forma supuesta no es la correcta, son las preguntas que siguen en el curso.
Hacia la tarea: la CEF en la ENOE
La tarea de esta sesión repite lo que hiciste en esta página, ahora con datos reales: la Encuesta Nacional de Ocupación y Empleo (ENOE) del INEGI. Cada persona trabaja con una submuestra distinta, sacada con su matrícula como semilla, así que nadie tiene los mismos números.
Con tu submuestra de personas ocupadas vas a:
- Estimar \(\hat m(x)\) del ingreso por hora para cada nivel de escolaridad, con su intervalo de 95% (sección 11.1).
- Comprobar en tus datos la ley de esperanzas iteradas y la descomposición dentro + entre, y reportar tu \(\eta^2\) (secciones 5 y 7).
- Tratar la edad como \(X\) continua y comparar dos valores de \(K\) (sección 11.2).
Las instrucciones completas y la fecha de entrega se publican en Canvas. Para ir adelantando: descarga de Canvas > Archivos el archivo enoe_sdem_2t2026.csv (segundo trimestre de 2026, unos 10 MB), guárdalo en la carpeta datos/ de tu proyecto de RStudio y prueba que puedes leerlo con el bloque de abajo. Si todavía no tienes R instalado, sigue la guía para instalar R y RStudio.
# Lee el archivo de Canvas (guárdalo en la carpeta datos/ de tu proyecto).
enoe <- read.csv("datos/enoe_sdem_2t2026.csv")
dim(enoe) # 324,081 personas y 11 variables
# Ocupados (clase2 = 1) con ingreso por hora positivo y escolaridad conocida.
ocupados <- subset(enoe, clase2 == 1 & ing_x_hrs > 0 & anios_esc != 99)
nrow(ocupados) # 119,315
# Tu submuestra: los dígitos de tu matrícula como semilla (A01234567 -> 1234567).
set.seed(1234567) # <- tu matrícula
mi_muestra <- ocupados[sample(nrow(ocupados), 5000), ]
# Primer vistazo: ingreso por hora promedio por años de escolaridad.
round(tapply(mi_muestra$ing_x_hrs, mi_muestra$anios_esc, mean), 1)
# ¿Cuántas personas hay en cada grupo? Fíjate en los grupos chicos.
table(mi_muestra$anios_esc)El archivo es la tabla sociodemográfica (SDEMT) de la ENOE del segundo trimestre de 2026, ya filtrada a residentes de 15 años o más con entrevista completa. Sus variables:
| Variable | Qué es |
|---|---|
cve_ent |
entidad federativa (1 a 32) |
sex |
sexo: 1 hombre, 2 mujer |
eda |
edad en años |
anios_esc |
años de escolaridad (99 = no especificado) |
clase1 |
1 población económicamente activa, 2 no activa |
clase2 |
1 ocupada, 2 desocupada, 3 disponible, 4 no disponible |
pos_ocu |
posición en la ocupación |
hrsocup |
horas trabajadas en la semana |
ingocup |
ingreso mensual, en pesos (0 si no tiene o no lo reportó) |
ing_x_hrs |
ingreso promedio por hora trabajada, en pesos |
fac_tri |
factor de expansión trimestral |
Fuente: INEGI, Encuesta Nacional de Ocupación y Empleo, segundo trimestre de 2026, y su descripción de la base de datos.