inst/doc/estimacion_pobreza.R

## ----echo = FALSE-------------------------------------------------------------
LOCAL <- TRUE
# identical(Sys.getenv("LOCAL"), "TRUE")
knitr::opts_chunk$set(
  purl = LOCAL,
  collapse = TRUE,
  comment = "#>"
)

## ----setup, eval=LOCAL,include=FALSE------------------------------------------
knitr::opts_chunk$set(warning = FALSE, message = FALSE, results = "hide")

## ----results='hide',warning=FALSE---------------------------------------------
library(eph)
library(dplyr)
library(tidyr)
library(readr)
library(lubridate)
library(ggplot2)
library(forcats)

## ----eval=LOCAL---------------------------------------------------------------
canastas_regionales <- get_poverty_lines(regional = TRUE)
bases <- get_microdata(
  year = 2016:2019,
  period = 1:4,
  type = "individual",
  vars = c("ANO4", "TRIMESTRE", "REGION", "CODUSU", "NRO_HOGAR", "CH04", "CH06", "ITF", "PONDIH", "PP07H", "PP04D_COD")
  # ,destfile = 'bases_eph.rds'
)

## ----eval=LOCAL---------------------------------------------------------------
# bases <- bases %>% unnest(cols = c(microdata))
bases_pobreza <- calculate_poverty(bases, canastas_regionales, print_summary = TRUE)
bases_pobreza

## ----eval=LOCAL---------------------------------------------------------------
pobreza_oficial <- read_csv("https://raw.githubusercontent.com/holatam/data/master/eph/canasta/pobreza_oficial.csv")
pobreza_oficial <- pobreza_oficial %>%
  mutate(periodo = parse_date_time(paste0(ANO4, "-", SEMESTRE * 2), "Y.q")) %>%
  select(periodo, pobreza_oficial = tasa_pobreza, indigencia_oficial = tasa_indigencia)
pobreza_oficial

## ----eval=LOCAL---------------------------------------------------------------
Pobreza_resumen <- bases_pobreza %>%
  group_by(ANO4, TRIMESTRE) %>%
  summarise(
    Tasa_pobreza = sum(PONDIH[situacion %in% c("pobre", "indigente")], na.rm = TRUE) / sum(PONDIH, na.rm = TRUE),
    Tasa_indigencia = sum(PONDIH[situacion == "indigente"], na.rm = TRUE) / sum(PONDIH, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  mutate(periodo = parse_date_time(paste0(ANO4, "-", TRIMESTRE), "Y.q")) %>%
  select(periodo, pobreza_estimada = Tasa_pobreza, indigencia_estimada = Tasa_indigencia)

Pobreza_resumen <- Pobreza_resumen %>%
  left_join(pobreza_oficial, by = "periodo") %>%
  pivot_longer(cols = pobreza_estimada:indigencia_oficial, names_to = c("tipo", "grupo"), values_to = "valor", names_sep = "_", values_drop_na = TRUE)

## ----fig.height=5, fig.width=7, eval=LOCAL------------------------------------
Pobreza_resumen <- Pobreza_resumen %>%
  group_by(tipo, grupo) %>%
  mutate(
    x = lag(periodo),
    y = lag(valor)
  )

ggplot(Pobreza_resumen, aes(periodo, valor, color = grupo)) +
  geom_step(data = Pobreza_resumen %>% filter(grupo == "estimada"), linetype = "dashed") +
  geom_segment(
    data = Pobreza_resumen %>% filter(grupo == "estimada"),
    aes(x = x, y = y, xend = periodo, yend = y), size = 1
  ) +
  geom_point(data = Pobreza_resumen %>% filter(grupo == "oficial"), size = 3) +
  facet_wrap(tipo ~ ., scales = "free") +
  theme_minimal() +
  theme(legend.position = "bottom")

## ----fig.height=5, fig.width=7, eval=LOCAL------------------------------------
pobreza_calificacion <- bases_pobreza %>%
  filter(!is.na(situacion), !is.na(PP04D_COD)) %>%
  organize_cno(.) %>%
  filter(CALIFICACION %in% c("No calificados", "Operativos", "Técnicos", "Profesionales")) %>%
  group_by(ANO4, TRIMESTRE, CALIFICACION) %>%
  summarise(
    pobreza = sum(PONDIH[situacion %in% c("pobre", "indigente")], na.rm = TRUE) / sum(PONDIH, na.rm = TRUE),
    indigencia = sum(PONDIH[situacion == "indigente"], na.rm = TRUE) / sum(PONDIH, na.rm = TRUE),
    .groups = "drop"
  )


pobreza_calificacion %>%
  mutate(periodo = parse_date_time(paste0(ANO4, "-", TRIMESTRE), "Y.q")) %>%
  pivot_longer(cols = pobreza:indigencia, names_to = c("tipo"), values_to = "tasa") %>%
  ggplot(aes(periodo, tasa, fill = tipo)) +
  geom_col(position = position_dodge()) +
  facet_wrap(. ~ CALIFICACION) +
  theme_minimal() +
  theme(legend.position = "bottom")

## ----fig.height=7, fig.width=7, eval=LOCAL------------------------------------
pobreza_informalidad <- bases_pobreza %>%
  filter(!is.na(situacion), PP07H %in% 1:2) %>%
  group_by(ANO4, TRIMESTRE, PP07H) %>%
  summarise(
    pobreza = sum(PONDIH[situacion %in% c("pobre", "indigente")], na.rm = TRUE) / sum(PONDIH, na.rm = TRUE),
    indigencia = sum(PONDIH[situacion == "indigente"], na.rm = TRUE) / sum(PONDIH, na.rm = TRUE),
    .groups = "drop"
  )


pobreza_informalidad %>%
  mutate(
    periodo = parse_date_time(paste0(ANO4, "-", TRIMESTRE), "Y.q"),
    descuento_jubilatorio = case_when(
      PP07H == 1 ~ "Si",
      TRUE ~ "No"
    )
  ) %>%
  pivot_longer(cols = pobreza:indigencia, names_to = c("tipo"), values_to = "tasa") %>%
  ggplot(aes(periodo, tasa, color = descuento_jubilatorio)) +
  # geom_col(position = position_dodge())+
  geom_point(size = 2) +
  geom_smooth() +
  facet_wrap(tipo ~ ., scales = "free", ncol = 1) +
  theme_minimal() +
  theme(
    legend.position = "bottom",
    text = element_text(size = 14)
  )

## ----eval=LOCAL---------------------------------------------------------------
relativos_cba <- canastas_regionales %>%
  select(-CBT, -codigo) %>%
  pivot_wider(names_from = region, values_from = CBA) %>%
  mutate_at(.vars = c("Cuyo", "Noreste", "Noroeste", "Pampeana", "Patagonia"), ~ .x / GBA) %>%
  mutate(
    GBA = GBA / GBA,
    periodo = parse_date_time(periodo, "Y.q")
  ) # paso a formato fecha los trimestres
relativos_cba

## ----fig.height=5, fig.width=7, eval=LOCAL------------------------------------
ppcc <- data.frame(
  region = c("Cuyo", "GBA", "Noreste", "Noroeste", "Pampeana", "Patagonia"),
  ppcc = c(.872, 1, .886, .865, .904, .949)
)


relativos_cba %>%
  pivot_longer(cols = Cuyo:Patagonia, names_to = "region", values_to = "relativo") %>%
  left_join(ppcc, by = c("region")) %>%
  mutate(relativo_normalizado = relativo / ppcc) %>%
  pivot_longer(names_to = "grupo", cols = c("relativo", "relativo_normalizado", "ppcc"), values_to = "valor") %>%
  mutate(grupo = fct_recode(grupo, "efecto total" = "relativo", "efecto composición" = "relativo_normalizado")) %>%
  ggplot(aes(periodo, valor, color = region, group = region)) +
  geom_line() +
  facet_wrap(. ~ grupo) +
  theme_minimal() +
  theme(legend.position = "bottom")

## ----eval=LOCAL---------------------------------------------------------------
relativos_cbt <- canastas_regionales %>%
  select(-CBA, -codigo) %>%
  pivot_wider(names_from = region, values_from = CBT) %>%
  mutate_at(.vars = c("Cuyo", "Noreste", "Noroeste", "Pampeana", "Patagonia"), ~ .x / GBA) %>%
  mutate(
    GBA = GBA / GBA,
    periodo = parse_date_time(periodo, "Y.q")
  ) # paso a formato fecha los trimestres
relativos_cbt

## ----fig.height=5, fig.width=7, eval=LOCAL------------------------------------
relativos_cbt %>%
  pivot_longer(cols = Cuyo:Patagonia, names_to = "region", values_to = "relativo") %>%
  left_join(ppcc, by = c("region")) %>%
  mutate(relativo_normalizado = relativo / ppcc) %>%
  pivot_longer(names_to = "grupo", cols = c("relativo", "relativo_normalizado", "ppcc"), values_to = "valor") %>%
  mutate(grupo = fct_recode(grupo, "efecto total" = "relativo", "efecto composición" = "relativo_normalizado")) %>%
  ggplot(aes(periodo, valor, color = region, group = region)) +
  geom_line() +
  facet_wrap(. ~ grupo) +
  theme_minimal() +
  theme(legend.position = "bottom")

## ----eval=LOCAL---------------------------------------------------------------
relativos_ice <- canastas_regionales %>%
  group_by(region, periodo) %>%
  mutate(ice = CBT / CBA) %>%
  select(-CBA, -CBT, -codigo) %>%
  pivot_wider(names_from = region, values_from = ice) %>%
  mutate_at(.vars = c("Cuyo", "Noreste", "Noroeste", "Pampeana", "Patagonia"), ~ .x / GBA) %>%
  mutate(
    GBA = GBA / GBA,
    periodo = parse_date_time(periodo, "Y.q")
  ) # paso a formato fecha los trimestres
relativos_ice

## ----fig.height=5, fig.width=7, eval=LOCAL------------------------------------
relativos_ice %>%
  pivot_longer(cols = Cuyo:Patagonia, names_to = "region", values_to = "relativo") %>%
  left_join(ppcc, by = c("region")) %>%
  ggplot(aes(periodo, relativo, color = region, group = region)) +
  geom_line() +
  theme_minimal() +
  theme(legend.position = "bottom")

Try the eph package in your browser

Any scripts or data that you put into this service are public.

eph documentation built on June 23, 2024, 5:06 p.m.