library(dplyr)
library(kableExtra)
library(Hmisc)
library(ggthemes)
options(scipen=999)


datos<-readRDS("datos.rds") # son las eph 2018 2024 primer trimestre

Con ingresos salariales

Se definen 10 grupos por deciles

s<-datos %>% 
  filter(PP08D1>0 & is.na(PP08D1)==F &
           PP08D1<wtd.quantile(PP08D1,.99,
                               weights=PONDII)) %>% 
  group_by(ANO4) %>% 
  mutate(decil=cut(PP08D1, wtd.quantile(PP08D1,
                                        seq(0,1,.1),
                                        weights=PONDII)),
         decil=factor(decil, labels = c("d1","d2","d3","d4","d5","d6","d7",
                                        "d8","d9","d10"),
                      ordered = TRUE)) %>%
  group_by(ANO4, decil) %>% 
  summarise(mediana_grupo=wtd.quantile(PP08D1, .5, weights=PONDII),
            min_grupo=min(PP08D1),max_grupo=max(PP08D1),
            media_grupo=wtd.mean(PP08D1, weights=PONDII))

Como resumen, se calcula:

  • el cociente de las medianas de los grupos extremos

  • el cociente del minimo del grupo superior sobre el máximo del grupo inferior. Así entiendo que se calcula el P90/P10 “someone who falls just inside the richest 10% of their country’s population… someone who falls just inside the poorest 10%.

resumen_s<-s %>% 
  group_by(ANO4) %>% 
  summarise(mediana.D1=mediana_grupo[decil=="d1"],
            mediana.D10=mediana_grupo[decil=="d10"],
            cociente.medianas=round(mediana_grupo[decil=="d10"]/mediana_grupo[decil=="d1"],2),
            minimo_alto=min_grupo[decil=="d10"], maximo_bajo=max_grupo[decil=="d1"],
            P90.P10=round(min_grupo[decil=="d10"]/max_grupo[decil=="d1"],2) ) %>% 
  filter(is.na(cociente.medianas)==F & is.na(P90.P10)==F) 

resumen_s%>% kable()
ANO4 mediana.D1 mediana.D10 cociente.medianas minimo_alto maximo_bajo P90.P10
2018 3000 40000 13.33 30500 4400 6.93
2019 15000 46000 3.07 38200 15000 2.55
2020 30000 70000 2.33 57900 30000 1.93
2021 30000 100000 3.33 77000 30000 2.57
2022 12500 160000 12.80 121000 17000 7.12
2023 22000 300000 13.64 225000 32000 7.03
2024 60000 600000 10.00 502650 80000 6.28
# no se de dónde vienen esos NA

Gráficos

ggplot(resumen_s)+geom_point(aes(ANO4, mediana.D1), col="blue")+
  geom_point(aes(ANO4, mediana.D10), col="red")+xlab("Anio")+
  ylab("Medianas de ingresos salariales \n de grupos extremos")+
  geom_segment(aes(x=ANO4, xend=ANO4, y=mediana.D1, yend=mediana.D10))+
  theme_tufte()

ggplot(resumen_s)+geom_point(aes(ANO4, maximo_bajo), col="blue")+
  geom_point(aes(ANO4, minimo_alto), col="red")+xlab("Anio")+
  ylab("Limites de ingresos salariales \n de grupos extremos")+
  geom_segment(aes(x=ANO4, xend=ANO4, y=maximo_bajo, yend=minimo_alto))+
  theme_tufte()

Mismas operaciones con ingresos totales

st<-datos %>% 
  filter(P47T>0 & is.na(P47T)==F &
           P47T<wtd.quantile(P47T,.99,
                               weights=PONDII)) %>% 
  group_by(ANO4) %>% 
  mutate(decil=cut(P47T, wtd.quantile(P47T,
                                        seq(0,1,.1),
                                        weights=PONDII)),
         decil=factor(decil, labels = c("d1","d2","d3","d4","d5","d6","d7",
                                        "d8","d9","d10"),
                      ordered = TRUE)) %>%
  group_by(ANO4, decil) %>% 
  summarise(mediana_grupo=wtd.quantile(P47T, .5, weights=PONDII),
            min_grupo=min(P47T),max_grupo=max(P47T),
            media_grupo=wtd.mean(P47T, weights=PONDII))

Resumen

resumen_st<-st %>% 
  group_by(ANO4) %>% 
  summarise(mediana.D1=mediana_grupo[decil=="d1"],
            mediana.D10=mediana_grupo[decil=="d10"],
    cociente.medianas=round(mediana_grupo[decil=="d10"]/mediana_grupo[decil=="d1"],2),
    minimo_alto=min_grupo[decil=="d10"], maximo_bajo=max_grupo[decil=="d1"],
            P90.P10=round(min_grupo[decil=="d10"]/max_grupo[decil=="d1"],2) ) %>% 
   filter(is.na(cociente.medianas)==F & is.na(P90.P10)==F)

resumen_st %>% kable()
ANO4 mediana.D1 mediana.D10 cociente.medianas minimo_alto maximo_bajo P90.P10
2018 2000 45000 22.50 33100 3900 8.49
2019 23100 60000 2.60 45300 25000 1.81
2020 23800 89000 3.74 65100 25000 2.60
2021 24000 110000 4.58 85400 25000 3.42
2022 29000 175000 6.03 130000 30000 4.33
2023 57000 300000 5.26 239000 60000 3.98
2024 40000 600000 15.00 512000 75000 6.83

Gráficos

ggplot(resumen_st)+geom_point(aes(ANO4, mediana.D1), col="blue")+
  geom_point(aes(ANO4, mediana.D10), col="red")+xlab("Anio")+
  ylab("Medianas de ingresos totales \n de grupos extremos")+
  geom_segment(aes(x=ANO4, xend=ANO4, y=mediana.D1, yend=mediana.D10))+
  theme_tufte()

ggplot(resumen_st)+geom_point(aes(ANO4, maximo_bajo), col="blue")+
  geom_point(aes(ANO4, minimo_alto), col="red")+xlab("Anio")+
  ylab("Limites de ingresos totales \n de grupos extremos")+
  geom_segment(aes(x=ANO4, xend=ANO4, y=maximo_bajo, yend=minimo_alto))+
  theme_tufte()