Siguiendo la iniciativa de Datos Abiertos, la Caja de Jubilaciones pone a disposición las bases de datos de Jubilaciones y Pensiones, Aportantes y Espacio Illia. En la Pagina de Transparencia de la Caja de Jubilaciones ya hay un lindo resumen titulado “La Caja en Números” con información de interés para la comunidad. En un acto de pura curiosidad, desde Open Data Cordoba, le dedicamos un poco más de tiempo a chusmear que hay en estos datos para responder algunas preguntas que en dicho resumen no se contestan.

Carga de Datos:

Los Datos referidos a Jubilaciones y pensiones fueron obtenidos del Catalogo de Datos de la Caja de Jubilaciones.

df <- read.csv('../../static/data/caja-de-jubilaciones-cba/Beneficiarios_201606.csv', sep=";",
                 fileEncoding = 'iso-8859-1', row.names = NULL)

names(df)[3] <- "Sector"
names(df)[11] <- "Remuneracion"

levelsRemuneraciones = c("1 a 4000", "4001 a 8000", "8001 a 12000", "12001 a 16000", "16001 a 20000", "20001 a 24000", "24001 a 28000", "28001 a 32000", "Mayor a 32000")
df$Remuneracion <- ordered(df$Remuneracion,
                                        levels=levelsRemuneraciones)

Cantidad de Jubilados por Rango de Remuneracion

El dataset nos divide la remuneración por rango. ¿Cuántos jubilados hay en cada rango de remuneración?

dfRangoCount <- df %>%
  group_by(Remuneracion) %>%
  summarise(cantidad = n())

ggplot(dfRangoCount, aes(x=Remuneracion, y=cantidad)) +
  geom_bar(stat="identity", fill="steelblue") +
  ggtitle("Cantidad de Jubilaciones por Remuneración \n (Prov. Córdoba - Junio 2016)") +
  geom_text(data=dfRangoCount,
            aes(x=Remuneracion,
                y=cantidad,
                label=cantidad),
            vjust=-0.25) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 30, hjust = 1.1, vjust = 1.8),
        axis.text.y = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank()
        )

Llama la atención que la curva se desvia de una distribución normal (esperable cuando se habla de ingresos) debido al alto porcentaje de jubilaciones mayores a $32000

Jubilaciones de Privilegio

Entonces cabe preguntar, ¿Quiénes son los que cobran dichas Jubilaciones? o mejor dicho, ¿Cómo se distribuyen estas jubilaciones en los distintos sectores? ¿Quiénes en Córdoba tienen las jubilaciones más altas?

dfPriv <- df %>%
  filter(Remuneracion == "Mayor a 32000") %>%
  group_by(Sector) %>%
  summarise(cantidad = n()) %>%
  arrange(desc(cantidad))

ggplot(dfPriv, aes(x=reorder(Sector, cantidad), y=cantidad)) +
  geom_bar(stat="identity", fill="steelblue") +
  coord_flip() +
  ggtitle("Quiénes cobran las 12015 jubilaciones más altas? \n (Jubilaciones > $32000 - Prov Córdoba - Junio 2016)") +
  geom_text(data=dfPriv,
            aes(x=Sector,
                y=cantidad,
                label=cantidad),
            hjust=-0.15) +
  theme_minimal() + xlab(NULL) + ylab(NULL) +
  theme(axis.text.x = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank())

Era de conocimiento que Municipalidad, EPEC y Bancarios tienen las mejores jubilaciones en la Provincia. Hoy lo confirmamos gracias a los datos abiertos por la Caja de Jubilaciones de la Provincia.

tmp <- df %>% filter(Remuneracion == "Mayor a 32000")
total <- nrow(tmp)
tmp <- tmp %>% filter(Sector %in% c("EPEC", "Bancarios", "Municipalidad de Córdoba"))
ebm <- nrow(tmp)

EPEC, Bancarios y Municipalidad se llevan el 59.35% de las Jubilaciones de Privilegio.

Remuneraciones

remuneracionEPEC <- df %>%
  filter(Sector == "EPEC") %>%
  group_by(Remuneracion) %>%
  summarise(cantidad = n()) %>%
  mutate(porcentaje = paste0(round(cantidad / sum(cantidad) * 100,2),"%"))

remuneracionMunicipalidad <- df %>%
  filter(Sector == "Municipalidad de Córdoba") %>%
  group_by(Remuneracion) %>%
  summarise(cantidad = n()) %>%
  mutate(porcentaje = paste0(round(cantidad / sum(cantidad) * 100,2),"%"))

remuneracionBancarios <- df %>%
  filter(Sector == "Bancarios") %>%
  group_by(Remuneracion) %>%
  summarise(cantidad = n()) %>%
  mutate(porcentaje = paste0(round(cantidad / sum(cantidad) * 100,2),"%"))

tmp <- df %>% filter(Sector %in% c("EPEC", "Municipalidad de Córdoba", "Bancarios"))
ggplot(remuneracionEPEC, aes(x=Remuneracion, y=cantidad)) +
  geom_bar(stat="identity", fill="steelblue") +
  geom_text(
    aes(x=Remuneracion,
        y=cantidad,
        label=porcentaje),
    vjust=-0.5) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 30, hjust = 1.1, vjust = 1.8),
        axis.text.y = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank()
        ) +
  ggtitle("Porcentaje de Jubilados de EPEC \n por Rango de Remuneración")

ggplot(remuneracionMunicipalidad, aes(x=Remuneracion, y=cantidad)) +
  geom_bar(stat="identity", fill="steelblue") +
  geom_text(
    aes(x=Remuneracion,
        y=cantidad,
        label=porcentaje),
    vjust=-0.5) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 30, hjust = 1.1, vjust = 1.8),
        axis.text.y = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank()
        ) +
  ggtitle("Porcentaje de Jubilados de la Municipalidad de Córdoba \n por Rango de Remuneración")

ggplot(remuneracionBancarios, aes(x=Remuneracion, y=cantidad)) +
  geom_bar(stat="identity", fill="steelblue") +
  geom_text(
    aes(x=Remuneracion,
        y=cantidad,
        label=porcentaje),
    vjust=-0.5) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 30, hjust = 1.1, vjust = 1.8),
        axis.text.y = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank()
        ) +
  ggtitle("Porcentaje de Jubilados Bancarios \n por Rango de Remuneración")

Anexo: Recomendaciones para la Liberación de Datos Abiertos:

  • Gran parte de las herramientas de programación utilizadas para el análisis y uso de los datos públicos tienen el Inglés como idioma por defecto. Esto hace que no se lleven muy bien con caracteres especiales del español como los acentos. Si bien es imposible quitar los acentos de los campos que contengan texto, es recomendable que la primera fila del archivo (que usualmente nombra el campo) no contenga acentos para evitar problemas a la hora de leer los archivos.
  • El formato estándar de liberación de datos es csv (Comma Separated Values). Por lo que es recomendable que el separador de campos sea una coma (,) y no un (;)
  • Asegurarse que en todas las filas, estén correctamente separados los campos por el delimitador elegido.
  • Por último, proveer de un link visible, único e invariante en el tiempo, permite que se pueda automatizar el análisis y que no se necesite de pasos manuales de descarga del archivo a disco. Lo ideal es que no se necesite entrar manualmente a la página web, seleccionar filtros y hacer click en un botón para descargar el set de datos.
  • Los datos deben estar lo más desagregados y crudos posibles. Los campos como Remuneración son mejor colocarlos crudos y dejar que el analista decida cuáles son las categorias o rangos en los cuales separarlos.

Si bien pueden sonar quisquillosas estas recomendaciones, ayudan a la hora de trabajar con datos abiertos y al momento de incorporarlos programáticamente a otros sistemas.