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")
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.
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,400,50)
paleta <-colorBin(palette = 'BuPu',domain = 0:500,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
g3
Ahora veremos si los centros de atención Chile Atiende del IPS(instituto de previsión social) están cerca de los pensionados por APS, que son parte de la población que más lo necesita. Esto lo haremos mediante el siguiente código:
geo_tbl<-ips%>%
geocode(address = NULL,
country = "PAIS",
city = "SUCURSAL",
street = "DIRECCIÓN",
method="osm",
)
geo_tbl$lat[9]=-35.42897791631642
geo_tbl$long[9]=-71.66004955125382
na.omit(geo_tbl)
## # A tibble: 17 × 7
## REGIÓN SUCURSAL DIRECCIÓN codigo_region PAIS lat long
## <chr> <chr> <chr> <chr> <chr> <dbl> <dbl>
## 1 METROPOLITANA PUENTE ALTO Santo Doming… 13 CHILE -33.6 -70.6
## 2 ARICA Y PARINACOTA ARICA Juan Noé , 9… 01 CHILE -18.5 -70.2
## 3 TARAPACÁ IQUIQUE Tarapacá , 5… 15 CHILE -20.2 -70.1
## 4 ANTOFAGASTA ANTOFAGASTA Sucre , 311 02 CHILE -23.6 -70.4
## 5 ATACAMA COPIAPÓ Atacama , 443 03 CHILE -27.4 -70.3
## 6 COQUIMBO COQUIMBO Melgarejo , … 04 CHILE -30.0 -71.3
## 7 VALPARAÍSO VALPARAÍSO Av. Brasil ,… 05 CHILE -33.0 -71.6
## 8 O´HIGGINS RANCAGUA Plaza de Los… 06 CHILE -34.2 -70.7
## 9 MAULE TALCA Dos Sur , 11… 07 CHILE -35.4 -71.7
## 10 ÑUBLE CHILLÁN Libertad , 4… 16 CHILE -36.6 -72.1
## 11 BIOBÍO CONCEPCIÓN Castellón , … 08 CHILE -36.8 -73.0
## 12 ARAUCANÍA TEMUCO Matta , 62 09 CHILE -38.7 -72.6
## 13 ARAUCANÍA VILLARRICA Francisco Bi… 09 CHILE -39.3 -72.2
## 14 LOS RÍOS VALDIVIA Yungay , 550 14 CHILE -39.8 -73.2
## 15 LOS LAGOS PUERTO MONTT Urmeneta , 5… 10 CHILE -41.5 -72.9
## 16 AYSÉN COYHAIQUE Arturo Prat … 11 CHILE -45.6 -72.1
## 17 MAGALLANES PUNTA ARENAS Pedro Montt … 12 CHILE -53.2 -70.9
leaflet() %>%
addTiles() %>% # Agregar capa de mapas base
addMarkers(lng = geo_tbl$long, lat = geo_tbl$lat, popup = geo_tbl$DIRECCIÓN)
g3%>%addMarkers(lng = geo_tbl$long, lat = geo_tbl$lat, popup = geo_tbl$DIRECCIÓN)
A partir de este mapa podemos ver que si bien la mayoría de los centro de Chile Atiende están al alcance de gente con APS, se puede ver que hay ciudades que tiene una sucursal con poca gente con APS, como la ciudad de Villarrica mientras que hay ciudaddes que no tienen una sucursal, debiendo tenerla, como la ciudad de los Ángeles
Así como es importante ver que como se distribuyen las personas con APS en el territorio, es importante también que ocurre con los jubilados con ¨PGU, para esto haremos el siguiente mapa interactivo para la región metropolitana:
base_com3=base_com %>% select(codigo_comuna,nom_comuna,Nombre.Región.desde.2018, y28_1c)
base_com3=na.omit(base_com3)
pgu_com<- base_com3 %>%
select(Nombre.Región.desde.2018,codigo_comuna,nom_comuna, y28_1c) %>%
group_by(Nombre.Región.desde.2018,codigo_comuna,nom_comuna,y28_1c)%>%
summarise(cuenta=n())%>%
mutate(proporcion=cuenta/sum(cuenta))
mapa_pgu<-mapa_comunas%>%left_join(pgu_com,by=c("codigo_comuna"="codigo_comuna"))
mapa_pgui<-subset(mapa_pgu,y28_1c==1)
mapa_pgui<-subset(mapa_pgui,codigo_region=="13")
mapa_pgui<-st_as_sf(mapa_pgui)
bins<-seq(0,300,50)
paleta <-colorBin(palette = 'BuPu',domain = 0:300,bins = bins)
labels <- sprintf("<strong>Comuna: %s</strong><br/>cantidad de encuestados con PGU: %g"
,mapa_pgui$nom_comuna, mapa_pgui$cuenta) %>% lapply(htmltools::HTML)
g5<-leaflet(mapa_pgui) %>%
addProviderTiles(provider = providers$OpenStreetMap.Mapnik)%>% #nos ayuda a adjuntar que mapa queremos, en caso elegimos providers$OpenStreetMap.Mapnik
addPolygons(fillColor = ~paleta(mapa_pgui$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 PGU") # le decimos que paleta queremos, los valores, el nombre y la ubicacion de la leyenda
g5
Ahora se hará un mapa de la proporción de jubilados con PGU para la región de Antofagasta
mapa_pgui2<-subset(mapa_pgu,y28_1c==1)
mapa_pgui2<-subset(mapa_pgui2,codigo_region=="02")
mapa_pgui2<-st_as_sf(mapa_pgui2)
bins<-seq(0,0.3,0.05)
paleta <-colorBin(palette = 'BuPu',domain = 0:100,bins = bins)
labels <- sprintf("<strong>Comuna: %s</strong><br/>Proporción de encuestados con PGU: %g"
,mapa_pgui2$nom_comuna, mapa_pgui2$proporcion) %>% lapply(htmltools::HTML)
g6<-leaflet(mapa_pgui2) %>%
addProviderTiles(provider = providers$OpenStreetMap.Mapnik)%>% #nos ayuda a adjuntar que mapa queremos, en caso elegimos providers$OpenStreetMap.Mapnik
addPolygons(fillColor = ~paleta(mapa_pgui2$proporcion),
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 ="Proporción pensionados PGU") # le decimos que paleta queremos, los valores, el nombre y la ubicacion de la leyenda
g6
Si bien comparando ambos mapas de la región de antofagasta se puede intentar anlizar alguna relación entre ambas variables, hacerlo con 2 mapas no es muy eficiente, por lo que evaluaremos si es posible hacer un mapa que relacione ambas variables.
Se evaluará la relación entre la cantidad de pensionados por PGU y APS mediante el siguiente código
base_com7=base_com %>% select(codigo_comuna,nom_comuna,Nombre.Región.desde.2018, y28_1c,y28_1b)
pen_pgu<- base_com7 %>%
select(Nombre.Región.desde.2018,codigo_comuna,nom_comuna, y28_1c) %>%
group_by(Nombre.Región.desde.2018,codigo_comuna,nom_comuna,y28_1c)%>%
summarise(cuenta_pgu=n())%>%
mutate(proporcion_pgu=cuenta_pgu/sum(cuenta_pgu))
pen_pgu=subset(pen_pgu,y28_1c==1)
pen_aps<- base_com7 %>%
select(Nombre.Región.desde.2018,codigo_comuna,nom_comuna, y28_1b) %>%
group_by(Nombre.Región.desde.2018,codigo_comuna,nom_comuna,y28_1b)%>%
summarise(cuenta_aps=n())%>%
mutate(proporcion_aps=cuenta_aps/sum(cuenta_aps))
pen_aps=subset(pen_aps,y28_1b==1)
pen_aps=data.frame(pen_aps[2],pen_aps[4:6])
pen_com=merge(pen_pgu,pen_aps,by.x ="codigo_comuna" ,by.y ="codigo_comuna" )
pen_com13<-subset(pen_com,Nombre.Región.desde.2018=="Metropolitana de Santiago")
mapa_pen<-mapa_comunas%>%left_join(pen_com13,by=c("codigo_comuna"="codigo_comuna"))
data <- bi_class(mapa_pen, x = cuenta_aps, y = cuenta_pgu, style = "quantile", dim = 3)
data<-na.omit(data)
data<-st_as_sf(data)
library(cowplot)
map <- ggplot() +
geom_sf(data = data, mapping = aes(fill = bi_class), color = "white", size = 0.1, show.legend = FALSE) +
bi_scale_fill(pal = "GrPink", dim = 3) +
labs(
title = "Proporción de pensionados con PGU y APS en RM",
) +
bi_theme()
map
legend <- bi_legend(pal = "GrPink",
dim = 3,
xlab = "mayor % APS ",
ylab = "Mayor % PGU ",
size = 4)
finalPlot <- ggdraw() +
draw_plot(map, 0, 0, 1, 1) +
draw_plot(legend, 0.2, .65, 0.2, 0.2)
finalPlot