Cálculo semestral de pobreza y variables condiciones de vida versión EPH (Capítulo 1)

tutorial
codigo
apuntes
Author

Pedro Damián Orden

Published

February 27, 2023

Introducción

A la luz de un proyecto de investigción que vengo desarrollando con organizaciones sociales desde el año pasado, me encontré en la necesidad de procesar variables de la Encuesta Permanente de Hogares (EPH) relacionadas a condiciones de vida y su relación con el proceso de empobrecimiento progresivo que vive nuestro país desde hace casi una década y se ha profundizado con la reciente pandemia. Dicho esto, se me ocurrió que podría ser útil para otros/as compartir parte de lo que vengo haciendo, ya que no lo encontré en otros lugares y puede sumar para quien pueda interesarle el tema.

Habida cuenta de la relevancia profesional que tiene el hecho contar con herramientas propias para la medición y análisis de la realidad social, la propuesta de este documento, junto a otros que vendrán, es la de abrir progresivamente códigos que permitan simplificar el procesamiento de los datos del módulo de condiciones de vida de la EPH de manera sistemática y eficiente.

En esta oportunidad, procuraré articular 3 variables relativas la dimensión de condiciones de vida con el cálculo semestral de pobreza por ingreso, para explorar, como veremos, posibles escenas de privilegio y desprivilegio social1.

Los datos

Como ya es bien sabido, la Encuesta Permanente de Hogares (EPH) es un programa nacional de producción sistemática y permanente de indicadores sociales, que tiene por objeto caracterizar a la población en términos de su inserción socioeconómica, dando a conocer:

  • a) las características demográficas básicas,

  • b) la inserción de la población en la producción social de bienes y servicios y

  • c) la participación de los hogares y la población en la distribución del producto social.

Para responder a este último eje, la encuesta incluye la medición de las características habitacionales, educacionales y de ingresos, entre otras temáticas que se inscriben en el circuito de satisfacción de necesidades y dan cuenta de las condiciones en que viven las personas en nuestro país.

Dicha dimensión se pública de manera semestral en un cuadernillo especial denominado: Indicadores de condiciones de vida de los hogares en 31 aglomerados urbanos. Los datos referidos al calculo de la pobreza por ingreso figuran semestralmente en el informe de Incidencia de la pobreza y la indigencia en 31 aglomerados urbanos del Instituto.

Ahora pasemos a R para revisar ésto con código.

Librerías

Antes de comenzar con nuestro procesamiento descarguemos las librerías que utilizaremos durante este trabajo.

Code
library(eph)
library(tidyverse)
library(gt)
library(patchwork)

El paquete eph nos va a permitir trabajar de manera eficaz con los datos de la EPH, mientras que tidyverse habilitará su manipulación y visualización. Utilizaremos gt para generar tablas y patchwork quedará para el final.

Descarga

Para desandar el objetivo de este instructivo digital, vamos a descargar los datos datos de la EPH correspondientes al primer semestre de 2022 de individuos y hogares. Utilizamos las dos bases ya que precisamos variables de ambas, es decir que a los microdatos de individuos vamos a adosarle variables relativas a los hogares.

Code
#datos de individuos
sem22i <- get_microdata(year = 2022,
                       trimester = c(2,1),
                       type =  'individual')
#datos de hogares
sem22h <- get_microdata(year = 2022,
                       trimester = c(2,1),
                       type =  'hogar')
#une hogares e individuos
eph<-sem22i%>%
  left_join(sem22h)

Checkeamos la cantidad de personas que componen la muestra por trimestre.

Code
eph%>%
  group_by(TRIMESTRE)%>% #agrupamos por trimestre
  tally(PONDERA)%>%
  gt() #visualizamos la tabla con gt
TRIMESTRE n
1 29073215
2 29137212

Al no hacer recortes por regiones o aglomerados en todos los casos nos estaremos refiriendo a datos para el total nacional.

Repetimos la operación, pero ahora por hogar, para individualizarlos elegimos sólo las jefaturas.

Code
eph%>%
  filter(CH03==1)%>% #definimos jefes/as de hogar
  group_by(TRIMESTRE)%>%
  tally(PONDERA)%>%
  gt()
TRIMESTRE n
1 9590915
2 9812063

De aquí en más será importante tener presente que existen diferencias cualitativas y cuantitativas entre hogares e individuos, se trata de dos tipos de unidades de análisis diferentes con sus características. Durante el documento haremos referencia generalmente a datos extrapolables a individuos, a su vez caracterizados por las particularidades de sus hogares2.

Cálculo semestral de pobreza

Las situaciones pobreza, además de movilizantes y dolorosas, son también complejas y multidimensionales para quien quiera estudiarlas. En este apartado nos aproximamos a un método de medición de la pobreza por ingreso3, para luego combinarla con otras variables relativas a condiciones tal como lo hace INDEC en su cuadro: Condiciones de vida, caracterización según pobreza por ingresos4. Aquí un fragmento que operará como nuestra referencia a lo largo del código:

Según INDEC (2022): La medición de la pobreza con el método de Línea de Pobreza (LP) consiste en establecer, a partir de los ingresos de los hogares, si éstos tienen capacidad de satisfacer por medio de la compra de bienes y servicios un conjunto de necesidades alimentarias y no alimentarias consideradas esenciales.

El procedimiento parte de utilizar una Canasta Básica de Alimentos (CBA) y ampliarla con la inclusión de bienes y servicios no alimentarios (vestimenta, transporte, educación, salud, etcétera) con el fin de obtener la Canasta Básica Total (CBT).

Para determinar la incidencia de la pobreza, se analiza la proporción de hogares cuyo ingreso no supera el valor de la CBT; para la indigencia, se calcula la proporción de los que no superan la CBA.

Transformación de los datos

En R podemos recrear el cálculo de la pobreza por ingreso de manera ágil gracias a antes mencionado paquete eph. Lo que haremos será descargar las canastas regionales y procesar los datos.

Code
# descarga los datos canastas regionales
canastas_regionales <- get_poverty_lines(regional = TRUE)
# calcula la condición de pobreza para la población
eph <- calculate_poverty(eph, canastas_regionales, print_summary = FALSE)

Lo que hemos hecho fue generar una nueva columna, situación, que da cuenta de las condiciones de indigencia, pobreza y no pobreza de cada miembro de la muestra, calculando en qué medida los hogares cubren o no sus necesidades.

Cálculo semestral

El cálculo de pobreza que realiza el INDEC supone una periodicidad semestral, con lo cual si quisiéramos construir la medición para el primer semestre de 2022 deberíamos trabajar en conjunto los datos del primer y segundo trismestre de la EPH y promediar sus valores. Lo vemos a continuación:

Code
eph_situacion<-eph%>%
  group_by(situacion)%>%
  tally(PONDIH/2)%>% #clave, acá promedia los trimestres
  filter(!is.na(situacion))%>%
  mutate(total_personas=sum(n))%>%
  mutate(porcentual=round(n/total_personas*100,2))%>%
  rename(personas=n)

eph_situacion%>%
  select(!total_personas)%>%
  gt()%>%
   tab_header( #mejoramos las tablas dándoles fotmato: título y color.
    title = md("**Pobreza por ingresos**"),
    subtitle = md("Total Argentina. 1er Semestre 2022")
  )%>%
  tab_options(table.background.color = "#e8e2f5")
Pobreza por ingresos
Total Argentina. 1er Semestre 2022
situacion personas porcentual
indigente 2476604 8.51
no_pobre 18544014 63.71
pobre 8084490 27.78

Hecho! Armemos una barra apilada para darle una upgrade visual la información:

Code
plot_pobreza <- eph_situacion %>% 
  mutate(semestre = "1er sem.")%>%
  mutate(situacion = fct_reorder(situacion, desc(porcentual))) %>%
  ggplot(aes(x=semestre, y = porcentual, fill = situacion)) +
  geom_col() +
  scale_fill_manual(values = c("#EBFBF5", "#FFEBC2","#FFCBBE")) + 
  ggtitle("Condición de pobreza. 
  Argentina 1er sem 2022.")+
  labs(x=" ",  y=" ")+
  geom_text(aes(label = paste0(porcentual, "%")),
            size=2.75,
            position = position_stack(vjust = 0.5)) +
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        panel.background = element_blank(), axis.line = element_blank())+
  coord_flip()+
  theme(plot.title = element_text(hjust = 0.5),
        legend.position="bottom",
        axis.text.x=element_blank(),
      axis.ticks.x=element_blank(),
      axis.text.y=element_blank(),
      axis.ticks.y=element_blank(),
      legend.key.size = unit(0.4, 'cm'))
  
plot_pobreza

Comparemos con los datos de pobreza que tenemos más arriba en el cuadro de INDEC, estuvimos muy cerca no? Sin ser parte del organismo es prácticamente imposible llegar al mismo resultado que ellos, ya que no sabemos todos los factores que influyen en el cálculo, pero replicando con programación la teoría los códigos que desarrollamos se aproximan a centésimas de la medición oficial.

Condiciones de vida

Las de condiciones de vida son todas aquellas variables que la EPH mide directa o indirectamente, y hacen referencia a los recursos por medio de los cuales personas y/o hogares reproducen biológica, simbólica y materialmente su existencia.

Habida cuenta del ejercicio iniciático de este documento, llevaremos adelante el cálculo y visualización de 3 variables relacionadas con las condiciones de vida en Argentina, creando resúmenes generales y gráficos por condición de pobreza (tener presente el gráfico de INDEC que compartimos al inicio).

Características del Hábitat

Calculemos dos variables del apartado de hogares de la EPH, que dan cuenta del habitat de las personas: proximidad de su hogar a basurales y la habitabilidad en zonas inundables.

Habitan cerca de basurales

La pregunta original del formulario para calcular nuestra variables es: la vivienda está ubicada cerca de basural/es (3 cuadras O menos)? Reprocesemos la variable con nuestro código.

Code
eph <- eph %>%
  mutate(cerca_basural = ifelse(IV12_1 == 1, "si",
                               ifelse(IV12_1 == 2, "no", NA)))
#imprimimos datos generales
eph%>%
  group_by(cerca_basural)%>%
  tally(PONDERA/2)%>% # uso pondera 
  filter(!is.na(cerca_basural))%>%
  mutate(personastot=sum(n))%>%
  mutate(porcentual=round(n/personastot*100,1))%>%
  rename(personas=n)%>%
  select(!personastot)%>%
  gt()%>%
   tab_header( #mejoramos las tablas dándoles un título y color.
    title = md("**Habitan cerca de basurales**"),
    subtitle = md("Total individuos, Argentina. 1er Semestre 2022"))%>%
  tab_options(table.background.color = "#e8e2f5")
Habitan cerca de basurales
Total individuos, Argentina. 1er Semestre 2022
cerca_basural personas porcentual
no 27225323 93.5
si 1879891 6.5

Los datos generales coinciden de cabo a rabo con la referencia del principio.

Abramos la data por condición de pobreza:

Code
eph_basurales <- eph%>% #individuos
  filter(!is.na(situacion))%>%
  group_by(situacion, cerca_basural)%>%
  tally(PONDIH) %>% #USO PONDIH porque entra la variable pobreza
  mutate(personastot=sum(n))%>%
  mutate(porcentual=round(n/personastot*100,2))%>%
  rename(personas=n)

Los resultados mantienen la concordancia con INDEC y nos los llevamos a un gráfico de donut 5:

Code
hsize <- 3

eph_basurales<- eph_basurales%>% 
  mutate(x = hsize)

plot_basurales<-ggplot(eph_basurales, 
       aes(x = hsize, y = porcentual, fill = cerca_basural)) +
  geom_col(color = "#edd8e9") +
  coord_polar(theta = "y") +
  xlim(c(0.2, hsize + 0.5)) +
    scale_fill_manual(values = c("#B6A7CA", "#F0DAB7")) +  # Cambiar los colores de fill
  facet_wrap(~factor(situacion, levels=c("indigente", "pobre", "no_pobre")), ncol = 3) +  # Cambiar la posición de la tira de faceta
labs(title = "Habitan cerca de basurales") +
  geom_text(aes(label = paste0(porcentual, "%")),
            position = position_stack(vjust = 0.5),
            size=3) +
    theme_void()+
   theme(legend.position="bottom",
         plot.title = element_text(hjust = 0.5),
         legend.key.size = unit(0.4, 'cm'))
  
plot_basurales

Habitan en zonas inundables

En este caso se pregunta si la vivienda está ubicada en zona inundable (en los últimos 12 meses).

Repetimos el ejercicio anterior para una nueva variable:

Code
eph <- eph%>%
  mutate(zona_inundable= ifelse(IV12_2 == 1, "si",
                               ifelse(IV12_2 == 2, "no", NA)))

eph%>%
  group_by(zona_inundable)%>%
  tally(PONDERA/2)%>% 
  filter(!is.na(zona_inundable))%>%
  mutate(personastot=sum(n))%>%
  mutate(porcentual=round(n/personastot*100,1))%>%
  rename(personas=n)%>%
  select(!personastot)%>%
  gt()%>%
   tab_header( #mejoramos las tablas dándoles un título y color.
    title = md("**Habitan en Zonas inundables**"),
    subtitle = md("Total individuos, Argentina. 1er Semestre 2022")
  )%>%
  tab_options(table.background.color = "#e8e2f5")
Habitan en Zonas inundables
Total individuos, Argentina. 1er Semestre 2022
zona_inundable personas porcentual
no 26752301 91.9
si 2352913 8.1

Hay match de los resultados obtenidos con los de nuestro ejemplo.

Code
eph_inundables <- eph %>%
  filter(!is.na(situacion))%>%
  group_by(situacion, zona_inundable)%>%
  tally(PONDIH/2) %>% #USO PONDIH porque entra la variable pobreza
  mutate(personastot=sum(n))%>%
  mutate(porcentual=round(n/personastot*100,2))%>%
  rename(personas=n) #OK

Creamos un nuevo gráfico donut para la variable y la apertura por condición de pobreza.

Code
hsize <- 3

eph_inundables<- eph_inundables%>% 
  mutate(x = hsize)

plot_inundable <- ggplot(eph_inundables, 
       aes(x = hsize, y = porcentual, fill = zona_inundable)) +
  geom_col(color = "#edd8e9") +
  coord_polar(theta = "y") +
  xlim(c(0.2, hsize + 0.5)) +
    scale_fill_manual(values = c("#B6A7CA", "#F0DAB7")) +  # Cambiar los colores de fill
  facet_wrap(~factor(situacion, levels=c("indigente", "pobre", "no_pobre")), ncol = 3) +  # Cambiar la posición de la tira de faceta
labs(title = "Habitat y zonas inundables") +
  geom_text(aes(label = paste0(porcentual, "%")),
            position = position_stack(vjust = 0.5),
            size=3) +
    theme_void()+
   theme(legend.position="bottom",
         plot.title = element_text(hjust = 0.5),
         legend.key.size = unit(0.4, 'cm'))

plot_inundable

Acceso a los 3 servicios públicos

A diferencia de las anteriores, aquí vamos a crear una nueva variable, resultante de la condición positiva de 3 variables relacionadas con el acceso a servicios públicos (son agua, luz y gas).

En el código que viene vamos a indicarle a R que cree la variable eph_servicios, y, si el hogar acceder a los 3 servicios públicos, lo etiquete como “accede”, caso contrario que lo etiquete como “no accede”.

Code
eph <- eph %>%
  mutate(acceso_servicios = ifelse(II8 == 1 & #accede a agua, luz y gas
                                     IV7 == 1 
                                   & IV11 == 1, 
                              "accede",
                              "no accede"))

eph%>%
  group_by(acceso_servicios)%>%
  tally(PONDERA/2)%>% #uso pondera
  filter(!is.na(acceso_servicios))%>%
  mutate(personastot=sum(n))%>%
  mutate(porcentual=round(n/personastot*100,1))%>% 
  rename(personas=n)%>%
  select(!personastot)%>%
  gt()%>%
   tab_header(
    title = md("**Acceso a los 3 servicios**"),
    subtitle = md("Total individuos Argentina. 1er Semestre 2022")
  )%>%
  tab_options(table.background.color = "#e8e2f5")
Acceso a los 3 servicios
Total individuos Argentina. 1er Semestre 2022
acceso_servicios personas porcentual
accede 14492743 49.8
no accede 14612471 50.2

Mantenemos la coincidencia con la referencia del INDEC.

Code
eph_servicios <- eph%>%
  filter(!is.na(situacion))%>%
  group_by(situacion, acceso_servicios)%>%
  tally(PONDIH/2) %>% #USO PONDIH porque entra la variable pobreza
  mutate(personastot=sum(n))%>%
  mutate(porcentual=round(n/personastot*100,1)) # #OK

Vamos a visualizar la apertura de nuestra variable en un gráfico de barras apiladas.

Code
plot_servicios <- eph_servicios%>%
  ggplot(aes(fill = acceso_servicios,
             y = porcentual, 
             x = factor(situacion, levels = c("indigente", "pobre", "no_pobre"))))+
  geom_col()+
  ggtitle("Acceso a los 3 servicios públicos 
Según condición de pobreza")+ #
  labs(subtitle = "Total Argentina. 1er Semestre 2022")+
  coord_flip()+
  labs(y="", x="", fill="servicios públicos")+
  geom_text(aes(label=paste0(porcentual, "%")),
            vjust = -0.5, color = 'black', hjust = 1.5,
            size = 3, position = "stack")+
  scale_fill_manual(values = c("#F0DAB7","#B6A7CA")) + 
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_blank(), 
        axis.line = element_blank(),
        axis.ticks.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.y=element_blank(),
        plot.title = element_text(hjust = 0.5),
        plot.subtitle = element_text(hjust = 0.5),
        legend.position="bottom",
      legend.key.size = unit(0.4, 'cm'))

plot_servicios

Las estimaciones que generamos nuevamente se acercaron a menos de un 1% de diferencia con el ejemplo.

Tejiendo datos

Patchwork es una librería que permite unir gráficos de ggplot, como si se tratara de carpetas en un tejido. Habida cuenta de esta interesante herramienta la idea ahora es crear un resumen visual de lo que estuvimos trabajando.

Code
plot_pobreza/#estas barras componen el grafico general
  plot_servicios/
  plot_basurales /
  plot_inundable + 
  plot_layout(ncol = 2, nrow = 2)#da formato al patchwork

Hecho!

Primeras impresiones

La información que pudimos generar, nos permite “sacar una foto” de un período puntual de la sociedad Argentina, en este caso el primer semestre de 2022.

Lo que está marcando está imagen es que más de un tercio de compatriotas, hombres, mujeres y niños, viven en situación de pobreza, y que, en términos de tendencia, esta circunstancia se ve acompañada por mayores privaciones en materia de hábitat y acceso pleno a servicios públicos con respecto a aquellos que no son pobres. Esto es un problema importante que requiere acciones sostenidas por parte del gobierno y la sociedad en su conjunto para abordar las causas subyacentes de la pobreza y garantizar que todos los ciudadanos tengan acceso a los servicios y recursos necesarios para llevar adelante una vida digna.

Conclusiones

Hasta a aquí hemos hecho una exploración preliminar de variables seleccionadas de la EPH para dar cuenta de una situación social que vive Argentina. Lo hemos hecho con herremientas propias y pudimos detectar por medio de la evidencia situaciones de privilegio y desprivilegio social que de mantenerse en el tiempo pueden ser perjudiciales para la vida colectiva del país.

A nivel técnico avanzamos en la apertura de código y presentamos una serie de estrategias y abordajes con los datos obtenidos que se mantuvieron en consonancia con las mediciones oficiales. Visualmente utilizamos tablas y gráficos que fuimos complejizando para potenciar la narrativa del documento

La propuesta para lo que viene es continuar con la apertura de código para el procesamiento de otras variables y automatizar el monitoreo integral de la EPH, para que mas personas puedan acceder de manera ágil, sistemática y replicable, a insumos que les permitan construir más y mejor conocimiento sobre la coyuntura e historia reciente de nuestra sociedad.

Bonus

Este apartado extra es para presentar una implementación concreta de los códigos, como los que estuvimos trabajando, en un app shiny (experimental pero usable) que permite explorar interactivamente las condiciones de vida de los hogares, caracterizados según pobreza por ingresos.

Querés utilizar esta app en pantalla completa? Podés hacerlo acá.

Hasta otra oportunidad.

Footnotes

  1. Hago referencia a situaciones en las que una posición en la estructura social implica una desventaja para los individuos al tratar de llevar a cabo su vida cotidiana y lograr una calidad de vida óptima. En otras palabras, estas personas enfrentan barreras y obstáculos “invisibles” que les impiden participar plenamente en la sociedad y aprovechar al máximo las oportunidades disponibles.↩︎

  2. El hogar se define como persona o grupo de personas que viven bajo un mismo techo y comparten los gastos de alimentación (INDEC 2010).↩︎

  3. Para conocer más sobre el calculo se puede consultar el siguiente material de trabajo https://www.indec.gob.ar › web › Nivel4-Tema-4-46-152↩︎

  4. Indicadores de condiciones de vida de los hogares en 31 aglomerados urbanos (1er semestre 2022), pagina 4.↩︎

  5. También conocido como gráfico de dona o rosquilla, es un tipo de visualización de datos circular que se utiliza para representar la proporción de diferentes categorías dentro de un conjunto de datos.

    Este gráfico se asemeja a una rosquilla, con un agujero en el centro y se divide en secciones radiales que representan las diferentes categorías. La proporción de cada categoría se muestra como un porcentaje del total del conjunto de datos.

    Al igual que un gráfico de pastel, un gráfico donut es útil para comparar las proporciones relativas de las categorías. Sin embargo, la ventaja del gráfico donut es que permite representar más categorías de manera clara y eficiente, ya que las secciones se pueden apilar en capas concéntricas alrededor del agujero central.↩︎

Reuse

Citation

BibTeX citation:
@online{damián orden2023,
  author = {Damián Orden, Pedro},
  title = {Cálculo Semestral de Pobreza y Variables Condiciones de Vida
    Versión {EPH} {(Capítulo} 1)},
  date = {2023-02-27},
  url = {https://tecysoc.netlify.app/posts/pobreza_semestral},
  langid = {en}
}
For attribution, please cite this work as:
Damián Orden, Pedro. 2023. “Cálculo Semestral de Pobreza y Variables Condiciones de Vida Versión EPH (Capítulo 1).” February 27, 2023. https://tecysoc.netlify.app/posts/pobreza_semestral.