Factores de expansión#
La GEIH es una muestra: cada persona entrevistada representa a muchas otras. El factor de expansión
(fex) dice a cuántas. Toda cifra sobre la población (cuántos ocupados hay, qué porcentaje gana el mínimo,
cuál es el ingreso mediano) tiene que usarlo; un promedio simple de la muestra describe a los
encuestados, no al país.
Un mes#
En un mes, la suma de fex es la población:
>>> df = dd.geih.load(2024, months=[1, 2, 3])
>>> (df.groupby("mes")["fex"].sum() / 1e6).round(2) # millones de personas
mes
1 51.31
2 51.36
3 51.40
Name: fex, dtype: float64
Con \(w_i\) el factor de expansión de la persona \(i\), el número de personas con una característica en el mes \(m\) es
Varios meses: promedios mensuales#
El factor de expansión es mensual. Si se juntan tres meses, la suma de fex es tres veces la
población:
>>> round(df["fex"].sum() / 1e6, 2)
154.07
Por eso el DANE publica los agregados de un trimestre o de un año como el promedio de los meses:
donde \(M\) es el número de meses del año en los datos. dane-data hace exactamente eso: divide fex por el
número de meses distintos de cada año (dane_data.stats.peso_mensual_promedio) en dd.tabla(),
dd.geih.indicadores() y todas las funciones serie_*. Después de dd.geih.filtrar(), \(M\) son los meses
que se cargaron, aunque el filtro deje alguno sin nadie (ese mes cuenta como 0), como en los totales
mensuales del DANE. No hay que hacer nada a mano:
>>> dd.tabla(df) # personas en el primer trimestre de 2024 (promedio mensual)
total n_muestra
0 5.135724e+07 213515
Si calcula a mano
Con df.groupby(...)["fex"].sum() sobre varios meses, divida por el número de meses. Un error frecuente
es sumar fex de un año completo y reportar una población 12 veces mayor.
Tasas#
Las tasas son cocientes de niveles promedio. Por ejemplo, la tasa de desocupación de un año es
el promedio mensual de desocupados sobre el promedio mensual de la fuerza de trabajo. No es el promedio de
las doce tasas mensuales (aunque suelen ser muy parecidos). Así las publica el DANE, y así las calcula
dd.geih.indicadores().
Un trimestre se calcula igual: cargue los tres meses y pida el resultado anual.
>>> dd.geih.indicadores(dd.geih.load(2024, months=[1, 2, 3]))[["tgp", "to", "td"]].round(1)
tgp to td
0 63.7 56.1 11.9
Varios años#
Con por que incluye anio, cada año se expande por separado (promedio de sus meses). Sin anio, los
totales suman los promedios de cada año, lo que rara vez tiene sentido como población; los
porcentajes, medias y medianas sí se pueden calcular sobre varios años juntos y son exactos.
Medias y medianas ponderadas#
dd.weighted_mean() y dd.weighted_quantile() usan fex como peso:
El cuantil es el menor valor que acumula la fracción \(p\) del peso total, la misma definición de _pctile
en Stata. Devuelve siempre un valor observado, sin interpolar. Eso importa con los ingresos, que se
amontonan en valores redondos: la mediana del ingreso laboral de 2024 es exactamente el salario mínimo
(1 300 000 pesos), porque una gran parte de los ocupados gana justo eso.
Tamaño de muestra#
Todas las tablas traen n_muestra, el número de personas encuestadas detrás de cada cifra. Una cifra
expandida de un grupo con pocas observaciones (por ejemplo, un departamento pequeño en un mes) tiene mucho
error de muestreo. Como regla práctica, desconfíe de los grupos con menos de 100 observaciones. dane-data
no calcula errores estándar.
La EAM no se expande#
La EAM no tiene factor de expansión: cada registro es un establecimiento, y los agregados de
dd.eam.resumen() son sumas.