6)Mapas Georeferenciados

En esta sección estudiaremos la cantidad y proporción de los pensionados con PGU y con APS respecto de su ubicación geografica, para esto usaremos la casen del año 2022.

la base de datos de la Casen 2022 cuenta con 202231 observaciones de 917, de las cuales nosotros usaremos principalmente las variables “y28_1b”, y “y28_1c” que corresponde a las preguntas “Mes pasado, ¿recibió Jubilación o Pensión de Vejez con APS?” y “Mes pasado, ¿recibió Jubilación, Pensión de Vejez o PGU?” respectivamente. estas variables indican que 8482 personas encuestadas recibieron pensión con APS mientras que 21784 encuestados recibieron PGU. ahora procederemos a definir que es el APS y la PGU.

El Aporte Previsional Solidario (APS) de vejez e invalidez es un beneficio que entrega el Estado a las personas que durante su vida laboral activa cotizaron en una cuenta individual obligatoria en una administradora de fondos de pensiones (AFP) y que producto de ese ahorro previsional pueden financiar una pensión base inferior o igual a la Pensión Máxima con Aporte Solidario (PMAS). Este beneficio es para quienes pertenecen al 60% de menores ingresos del país.

La Pensión Garantizada Universal (PGU) es un beneficio que entrega y financia 100% el Estado para apoyar a todas las personas de 65 años y más que se encuentren trabajando y/o que ya estén pensionadas en cualquier régimen previsional, es decir, reciben una pensión de retiro programado en una administradora de fondos de pensiones (AFP) o una renta vitalicia de una compañía de seguros de vida (CSV).

Para analizar la base de datos, primero extraeremos las variables de interés de esta base, también editaremos la variable estrato para indique el código de cada comuna.

base<-data.frame(Base_de_datos_Casen_2022_SPSS$id_vivienda,Base_de_datos_Casen_2022_SPSS$folio,
                 Base_de_datos_Casen_2022_SPSS$id_persona,Base_de_datos_Casen_2022_SPSS$region,
                 Base_de_datos_Casen_2022_SPSS$area,Base_de_datos_Casen_2022_SPSS$cod_upm,
                 Base_de_datos_Casen_2022_SPSS$nse,Base_de_datos_Casen_2022_SPSS$estrato,
                 Base_de_datos_Casen_2022_SPSS$tot_per_h,Base_de_datos_Casen_2022_SPSS$edad,
                 Base_de_datos_Casen_2022_SPSS$sexo,Base_de_datos_Casen_2022_SPSS$p2,
                 Base_de_datos_Casen_2022_SPSS$p3,Base_de_datos_Casen_2022_SPSS$p4,
                 Base_de_datos_Casen_2022_SPSS$y1,Base_de_datos_Casen_2022_SPSS$y28_1b,
                 Base_de_datos_Casen_2022_SPSS$y28_1c,Base_de_datos_Casen_2022_SPSS$y28_1d
                 )

base$Base_de_datos_Casen_2022_SPSS.estrato=ifelse(base$Base_de_datos_Casen_2022_SPSS.estrato<999999,
                                                  paste0(0,base$Base_de_datos_Casen_2022_SPSS.estrato),
                                                  base$Base_de_datos_Casen_2022_SPSS.estrato)
  
base$Base_de_datos_Casen_2022_SPSS.estrato=gsub('.{2}$',"",base$Base_de_datos_Casen_2022_SPSS.estrato)

Ahora usaremos la base de datos mapa_comunas para y DPA2018 para crear una tabla con con las variables de interés enlazadas a las coordenadas de cada comuna

ncomdpa<-data.frame(DPA2018[2],DPA2018[6],DPA2018[13],DPA2018[19])
mcomunas<-mapa_comunas

base_com<-merge(mcomunas,base,by.x = "codigo_comuna",by.y = "Base_de_datos_Casen_2022_SPSS.estrato")
base_com<-merge(ncomdpa,base_com,by.x = "Código.Comuna.desde.2018",by.y = "codigo_comuna")

names(base_com)[1:24]=c("codigo_comuna","nom_comuna","Provincia.desde.2018",
                        "Nombre.Región.desde.2018","codigo_provincia","codigo_region","geometry",
                        "id_vivienda","folio","id_persona","region","area","cod_upm","nse",
                        "tot_per_h","edad","sexo","p2","p3","p4","y1","y28_1b","y28_1c","y28_1d")

6.1) Mapa pensionados APS por comuna

Para generar este mapa con la proporción de encuestados con APS por comuna primero agruparemos la base de datos por comuna para obtener la proporción de pensionados por comuna.

base_com1=base_com %>% select(codigo_comuna,nom_comuna, y28_1b)
base_com1=na.omit(base_com1)

aps_com<- base_com1 %>% 
  select(codigo_comuna,nom_comuna, y28_1b) %>%
  group_by(codigo_comuna,nom_comuna,y28_1b)%>%
  summarise(cuenta=n())%>%
  mutate(proporcion=cuenta/sum(cuenta))

mapa_aps<-mapa_comunas%>%left_join(aps_com,by=c("codigo_comuna"="codigo_comuna"))
mapa_aps1<-mapa_aps

Ahora generaremos el mapa con el siguiente código:

colors <- c("#DCA761","#C6C16D","#8B9C94","#628CA5","#5A6C7A")

g1 <- ggplot() +
  geom_sf(data = mapa_aps1 %>% 
            select(codigo_comuna, geometry) %>% 
            left_join(
              mapa_aps1 %>% 
                filter(y28_1b == 1) %>% 
                select(codigo_comuna, y28_1b, proporcion),
              by = "codigo_comuna"
            ),
          aes(fill = proporcion, geometry = geometry),
          size = 1) +
  scale_fill_gradientn(colours = rev(colors), name = "Porcentaje") +
  labs(title = "Porcentaje de encuestados que reciben APS por comuna") +
  theme_minimal(base_size = 10)
g1

## 6.2) pensionados aps por región

Este mapa si bien cumple con mostrar la proporción de pensionados por comuna no es facil de analizar, por lo tanto analizaremos la misma variable pero para cada región.

base_com2=base_com %>% select(Nombre.Región.desde.2018,codigo_region, y28_1b)
base_com2=na.omit(base_com2)
aps_reg<- base_com2 %>% 
  select(Nombre.Región.desde.2018,codigo_region, y28_1b) %>%
  group_by(Nombre.Región.desde.2018,codigo_region, y28_1b)%>%
  summarise(cuenta=n())%>%
  mutate(proporcion=cuenta/sum(cuenta))
aps_reg
## # A tibble: 47 × 5
## # Groups:   Nombre.Región.desde.2018, codigo_region [16]
##    Nombre.Región.desde.2018            codigo_region y28_1b    cuenta proporcion
##    <chr>                               <chr>         <dbl+lbl>  <int>      <dbl>
##  1 De Aisén del Gral. C. Ibáñez del C… 11              1 [1. …    107    0.207  
##  2 De Aisén del Gral. C. Ibáñez del C… 11              2 [2. …    409    0.793  
##  3 De Antofagasta                      02            -88 [No …      9    0.00806
##  4 De Antofagasta                      02              1 [1. …    409    0.366  
##  5 De Antofagasta                      02              2 [2. …    699    0.626  
##  6 De Arica y Parinacota               15            -88 [No …      6    0.00519
##  7 De Arica y Parinacota               15              1 [1. …    315    0.273  
##  8 De Arica y Parinacota               15              2 [2. …    834    0.722  
##  9 De Atacama                          03            -88 [No …      9    0.00668
## 10 De Atacama                          03              1 [1. …    320    0.237  
## # ℹ 37 more rows
reg<-generar_regiones()
reg<-as.data.frame(reg)

mapa_reg<-reg%>%left_join(aps_reg,by=c("codigo_region"="codigo_region"))
mapa_reg1<-mapa_reg


colors <- c("#DCA761","#C6C16D","#8B9C94","#628CA5","#5A6C7A")

g2 <- ggplot() +
  geom_sf(data = mapa_reg1 %>% 
            select(codigo_region, geometry) %>% 
            left_join(
              mapa_reg %>% 
                filter(y28_1b == 1) %>% 
                select(codigo_region, y28_1b, proporcion),
              by = "codigo_region"
            ),
          aes(fill = proporcion, geometry = geometry),
          size = 1) +
  scale_fill_gradientn(colours = rev(colors), name = "Porcentaje") +
  labs(title = "Proporción de encuestados que reciben aps por región") +
  theme_minimal(base_size = 10)
g2

A partir de este mapa se puede ver que la región de antofagasta tiene una proporción de encuestados con aporte previsional solidario mucho mayor al resto de regiones, por lo que parece ser de interés estudiar esta región en particular, aunque este mapa aun no parece adecuado para hacer un buen análisis de las variables de interés.

6,3) Mapa pensionados APS interactivo

Para estudiar en mayor detalle a los pensionados con APS generaremos el siguiente mapa interactivo:

mapa_apsi<-subset(mapa_aps,y28_1b==1)
mapa_apsi<-st_as_sf(mapa_apsi)
bins<-seq(0,900,150)
paleta <-colorBin(palette = 'BuPu',domain = 0:900,bins = bins)
labels <- sprintf("<strong>Comuna: %s</strong><br/>cantidad de encuestados con aps: %g"
                  ,mapa_apsi$nom_comuna, mapa_apsi$cuenta) %>% lapply(htmltools::HTML)
g3<-leaflet(mapa_apsi) %>%  
  addProviderTiles(provider = providers$OpenStreetMap.Mapnik)%>% #nos ayuda a adjuntar que mapa queremos, en caso elegimos providers$OpenStreetMap.Mapnik
  addPolygons(fillColor = ~paleta(mapa_apsi$cuenta),
              weight = 2,#grosor de la linea que divide cada estado
              opacity = 1,
              color = "white", # usamos código Hex para los colores
              dashArray = "3",
              fillOpacity = 0.7, # rellenamos con color los polígonos que tan fuerte queremos que se muestre el color, mientras mayor mas fuerte 
              highlight = highlightOptions(
                weight = 4, #grosor de la linea que divide cada estado 
                color = "#666",
                dashArray = "",
                fillOpacity = 0.7,
                bringToFront = TRUE),
              label = labels,
              labelOptions = labelOptions(
                style = list("font-weight" = "normal", padding = "3px 8px"),
                textsize = "15px",
                direction = "auto")) %>%
  addLegend(pal = paleta, values = ~bins, opacity = 1,position = "bottomright",title ="cantidad pensionados aps") # le decimos que paleta queremos, los valores, el nombre y la ubicacion de la leyenda
## Warning: sf layer has inconsistent datum (+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs).
## Need '+proj=longlat +datum=WGS84'
g3