R Markdown

Presupuesto programas sociales

library(readr)
## Warning: package 'readr' was built under R version 4.4.3
targets <- c(
  "Transferencias, asignaciones, subsidios y otras ayudas" = "Capítulo",
  "Ayudas sociales" = "Concepto",
  "Ayudas sociales a personas" = "Partida Genérica",
  "Becas y otras ayudas para programas de capacitación" = "Partida Genérica"
)

leer_efipem_edomex <- function(anio) {
  df <- read_csv(paste0("efipem_estatal_anual_tr_cifra_", anio, ".csv"),
                  show_col_types = FALSE)
  df <- df[df$CVE_ENT == "15", ]

  resultado <- sapply(names(targets), function(desc) {
    fila <- df[df$DESCRIPCION_CATEGORIA == desc & df$CATEGORIA == targets[desc], ]
    if (nrow(fila) == 0) return(NA)   # rubro no reportado ese año -> NA (dato faltante, no cero)
    as.numeric(fila$VALOR[1])
  })

  data.frame(anio = anio, t(resultado))
}

#Leer 2006 a 2024
anios_efipem <- 2006:2024
efipem_edomex <- do.call(rbind, lapply(anios_efipem, leer_efipem_edomex))
names(efipem_edomex) <- c("anio", "transferencias_subsidios", "ayudas_sociales",
                           "ayudas_sociales_personas", "becas")

#Sexenios 
efipem_edomex$sexenio <- cut(
  efipem_edomex$anio,
  breaks = c(2006, 2012, 2018, 2024),
  labels = c("2006-2012", "2012-2018", "2018-2024"),
  include.lowest = FALSE
)
efipem_edomex
##    anio transferencias_subsidios ayudas_sociales ayudas_sociales_personas
## 1  2006              46604358700       211856700                  8113400
## 2  2007              46150715100        72066220                 10654840
## 3  2008              68629218400       208654800                 44119000
## 4  2009              69105260600       193149000                   394200
## 5  2010              84760470200       350265800                 12915300
## 6  2011              93190529000       353788500                 63850400
## 7  2012             103939374300       445153900                  8989500
## 8  2013             111904266300       739205500                  8107300
## 9  2014             125515065200       852718400                  2022700
## 10 2015             127024451200       762764000                 23129000
## 11 2016             145062795700      1196114800                   872900
## 12 2017             154038983400      1016907000                 14958900
## 13 2018             160681535973       983761000                       NA
## 14 2019             165977262008      1270171653                  4656000
## 15 2020             160151714490      1057662148                       NA
## 16 2021             160920950100       805190800                       NA
## 17 2022             179095545677       693087516                       NA
## 18 2023             188994248913       635067349                       NA
## 19 2024             208098287566       802614771                       NA
##         becas   sexenio
## 1   203743300      <NA>
## 2    61411380 2006-2012
## 3   164535800 2006-2012
## 4   192754800 2006-2012
## 5   337350500 2006-2012
## 6   289938100 2006-2012
## 7   436164400 2006-2012
## 8   731098200 2012-2018
## 9   850695700 2012-2018
## 10  734448000 2012-2018
## 11 1195241900 2012-2018
## 12 1001948100 2012-2018
## 13  983761000 2012-2018
## 14 1265515653 2018-2024
## 15 1057662148 2018-2024
## 16  805190800 2018-2024
## 17  693087516 2018-2024
## 18  635067349 2018-2024
## 19  802614771 2018-2024
#Promedio por sexenio
presupuesto_sexenio_nominal <- aggregate(
  cbind(transferencias_subsidios, ayudas_sociales, becas) ~ sexenio,
  data = efipem_edomex,
  FUN = mean
)

presupuesto_sexenio_nominal
##     sexenio transferencias_subsidios ayudas_sociales     becas
## 1 2006-2012              77629261267       270513037 247025830
## 2 2012-2018             137371182962       925245117 916198817
## 3 2018-2024             177206334792       877299040 876523040
#INPC por año, promedio ponderado Enero a diciembre con fuente de la INEGI
inpc <- data.frame(
  anio = 2006:2024,
  inpc_dic = c(61.23867495, 63.6679211, 66.9308904, 70.47645869, 73.40597327,
               75.90719344, 79.02812419, 82.03624266, 85.33296522, 87.65456908,
               90.12792486, 95.57296362, 100, 103.9006667, 107.43,
               113.5419167, 122.5075, 129.2796667, 135.3845833)
)
inpc_dic_2024_gral <- inpc$inpc_dic[inpc$anio == 2024]
inpc$factor_defl_presupuesto <- inpc_dic_2024_gral / inpc$inpc_dic

efipem_edomex <- merge(efipem_edomex, inpc[, c("anio", "factor_defl_presupuesto")], by = "anio")

# Deflactar
efipem_edomex$transferencias_subsidios_2024   <- efipem_edomex$transferencias_subsidios * efipem_edomex$factor_defl_presupuesto
efipem_edomex$ayudas_sociales_2024            <- efipem_edomex$ayudas_sociales * efipem_edomex$factor_defl_presupuesto
efipem_edomex$becas_2024                      <- efipem_edomex$becas * efipem_edomex$factor_defl_presupuesto
efipem_edomex$ayudas_sociales_personas_2024   <- efipem_edomex$ayudas_sociales_personas * efipem_edomex$factor_defl_presupuesto

# Promedio por sexenio 
presupuesto_sexenio_real <- aggregate(
  cbind(transferencias_subsidios_2024, ayudas_sociales_2024, becas_2024, ayudas_sociales_personas_2024) ~ sexenio,
  data = efipem_edomex,
  FUN = mean, na.rm = TRUE
)

#Contar datos faltantes
n_datos <- aggregate(
  ayudas_sociales_personas ~ sexenio,
  data = efipem_edomex,
  FUN = function(x) sum(!is.na(x))
)
names(n_datos)[2] <- "Años que sí cuentan con ayuda personas"

presupuesto_sexenio_real <- merge(presupuesto_sexenio_real, n_datos, by = "sexenio")

presupuesto_sexenio_real
##     sexenio transferencias_subsidios_2024 ayudas_sociales_2024 becas_2024
## 1 2006-2012                  145050490634            497657354  453364615
## 2 2012-2018                  203222568080           1397626466 1381061527
## 3 2018-2024                  216271590625           1655058292 1648991434
##   ayudas_sociales_personas_2024 Años que sí cuentan con ayuda personas
## 1                      44292739                                      6
## 2                      14962650                                      5
## 3                       6066858                                      1

Nota. El promedio de 2018-2024 se basa en 1 solo año de 6 (solo 2019 reportó dato) y los años 2018, 2020-2024 no fueron reportados por la fuente