── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 4.0.3 ✔ tibble 3.2.1
✔ lubridate 1.9.3 ✔ tidyr 1.3.1
✔ purrr 1.0.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Adjuntando el paquete: 'kableExtra'
The following object is masked from 'package:dplyr':
group_rows
Bases de Datos Finales SPP
Introducción.
El objetivo del presente documento es realizar actualizaciones finales a las bases de datos gdp_2021_spp_definitiva y gdp_per_capita_spp_definitiva implementando las siguientes correcciones:
- Argentina: Verificar la retropolación realizada con los datos de PGB provincial de Fundación Norte y Sur.
- México: Utilizar un deflactor único a nivel nacional.
A continuación se mostrarán las correcciones por sección para, finalmente, escribir las bases de datos finales de PIB y PIB per Capita para el SPP.
Argentina.
Proceso de retropolación
En una frase: El proceso descrito a continación es prácticamente idéntico al del archivo retropolacion_ar_1980_2003 salvo que aquí la base anchor contiene el PIB provincial de CEPAL a precios constantes del 2004 previo a aplicar la deflactación y dividir por el tipo de cambio.
Primeramente, se cargarán y procesarán las siguientes bases de datos:
- Base “definitiva” de PIB subnacional
- Base de PGB Provincial de la fundación Norte y Sur (NYS)
- Base nacional de NYS
- Tabla 4.1 de Aráoz et al.
- Anchor: Ancla para retrpolación de la CEPAL a pesos del 2004.
- Catalogo SPP: Diccionario que contiene la codificación de las provincias en formato SPP
Posteriormente se realizará el proceso de retropolación, donde la provincia de Corrientes será tratada por su cuenta. Luego, se le aplicará la deflactación y se la dividirá por el tipo de cambio correspondiente para, finalmente, unirla con el resto de la base de datos.
Show code
### Lectura de base de datos
DEFINITIVA <- "gdp_2021_spp_definitiva.xlsx" # base definitiva del 9-jul
NYS <- "nys_pbg_provincial_tidy.csv" # PBG provincial NyS (snapshot 12-jul-2026)
NACIONAL <- "ferreres_pbi_nacional_anual.csv" # PIB nacional anual (NyS oficial)
ARAOZ <- "araoz_table_4_1_shares.csv" # shares Aráoz et al. (2020), Tabla 4.1
catalogo_spp <- read_excel("catalogo_spp.xlsx")
nys <- read.csv(NYS) # state_name, year, pbg_nys_m_pesos2004
nac <- read.csv(NACIONAL) # year, pbi_nacional_m_pesos2004
araoz <- read.csv(ARAOZ, check.names = FALSE)
def <- read_xlsx(DEFINITIVA) |>
filter(country_name == "ARGENTINA") |>
select(state_name, year, gdp_dollars_2021, type, type_cat)
catalogo_spp <- catalogo_spp %>%
mutate(state_name = recode(state_name,
"MATO GROSS DO SUL" = "MATO GROSSO DO SUL"))
argentina_coding <- catalogo_spp |>
filter(country_name %in% "ARGENTINA")
mexico_coding <- catalogo_spp |>
filter(country_name %in% "MEXICO")
brazil_coding <- catalogo_spp |>
filter(country_name %in% "BRAZIL")
#catalogo_spp con nombres
anchor <- read_excel("pib_sub_argentina_actual.xlsx") |>
select(entidad, `2004`) |>
mutate(
entidad = case_when(
entidad == "Ciudad de Buenos Aires" ~ "CAPITAL FEDERAL",
entidad == "Buenos Aires" ~ "BUENOS AIRES",
entidad == "Catamarca" ~ "CATAMARCA",
entidad == "Córdoba" ~ "CORDOBA",
entidad == "Corrientes" ~ "CORRIENTES",
entidad == "Chaco" ~ "CHACO",
entidad == "Chubut" ~ "CHUBUT",
entidad == "Entre Ríos" ~ "ENTRE RIOS",
entidad == "Formosa" ~ "FORMOSA",
entidad == "Jujuy" ~ "JUJUY",
entidad == "La Pampa" ~ "LA PAMPA",
entidad == "La Rioja" ~ "LA RIOJA",
entidad == "Mendoza" ~ "MENDOZA",
entidad == "Misiones" ~ "MISIONES",
entidad == "Neuquén" ~ "NEUQUEN",
entidad == "Río Negro" ~ "RIO NEGRO",
entidad == "Salta" ~ "SALTA",
entidad == "San Juan" ~ "SAN JUAN",
entidad == "San Luis" ~ "SAN LUIS",
entidad == "Santa Cruz" ~ "SANTA CRUZ",
entidad == "Santa Fe" ~ "SANTA FE",
entidad == "Santiago del Estero" ~ "SANTIAGO DEL ESTERO",
entidad == "Tucumán" ~ "TUCUMAN",
entidad == "Tierra del Fuego" ~ "TIERRA DEL FUEGO",
TRUE ~ entidad
)
) |>
rename(
state_name = entidad,
gdp_2004 = `2004`
)Una vez hecho esto se procede con la retropolación o el encadenamiento.
La retropolación sirve para extrapolar hacia atrás la serie nueva utilizando indicadores proxy o estructuras de la serie antigua, obteniendo una serie homogénea y comparable a lo largo del tiempo.Para este caso se usará el método clásico de retropolación basado en un indicador de volumen/evolución \(\text{NyS}\)):\[\text{PIB}(\text{prov}, t) = \text{PIB}_{\text{definitiva}}(\text{prov}, 2004) \cdot \frac{\text{NyS}(\text{prov}, t)}{\text{NyS}(\text{prov}, 2004)}\]\(\text{PIB}_{\text{definitiva}}(\text{prov}, 2004)\): donde el nivel oficial del PIB en el año ancla o año de empalme (\(2004\)). Este valor ya incorpora las correcciones metodológicas más recientes.\(\frac{\text{NyS}(\text{prov}, t)}{\text{NyS}(\text{prov}, 2004)}\): Es el índice de evolución temporal de la variable indicadora (posiblemente Nóminas y Salarios, Nivel de Sueldos, o Nóminas y Seguros) para el año \(t\) respecto al año base \(2004\).El supuesto clave: Asume que antes de 2004, el PIB de la provincia evolucionó al mismo ritmo relativo al que evolucionó la variable proxy (\(\text{NyS}\)).
\[ \text{PIB}(\text{prov}, t) = \text{PIB}_{\text{definitiva}}(\text{prov}, 2004) \cdot \frac{\text{NyS}(\text{prov}, t)}{\text{NyS}(\text{prov}, 2004)} \]
Se encadenan las provincias:
Show code
# --- 1) encadenado: todas las provincias, años con dato NyS ------------------
nys04 <- nys |> filter(year == 2004) |>
select(state_name, nys_2004 = pbg_nys_m_pesos2004)
chained <- nys |>
filter(year >= 1980, year <= 2003) |>
inner_join(nys04, by = "state_name") |>
inner_join(anchor, by = "state_name") |>
mutate(gdp_dollars_2021 = gdp_2004 * pbg_nys_m_pesos2004 / nys_2004,
type_cat = "official_chained_nys") |>
select(state_name, year, gdp_dollars_2021, type_cat)Se hace un procedimiento especial para corrientes
Show code
# --- 2) Corrientes 1980–85: share Aráoz x PIB nacional, empalmado en 1986 ----
row_corr <- araoz |> filter(provincia == "Corrientes")
sh75 <- row_corr[["1975"]]; sh86 <- row_corr[["1986"]]
corr_8085 <- tibble(year = 1980:1985) |>
mutate(share = sh75 + (sh86 - sh75) * (year - 1975) / (1986 - 1975)) |>
left_join(nac, by = "year") |>
mutate(raw = pbi_nacional_m_pesos2004 * share / 100)
corr_1986_chained <- chained |>
filter(state_name == "CORRIENTES", year == 1986) |> pull(gdp_dollars_2021)
corr_1986_raw <- nac$pbi_nacional_m_pesos2004[nac$year == 1986] * sh86 / 100
splice <- corr_1986_chained / corr_1986_raw # unidades se cancelan aquí
corr_8085 <- corr_8085 |>
transmute(state_name = "CORRIENTES", year,
gdp_dollars_2021 = raw * splice,
type_cat = "estimated_share")
# --- 3) Corrientes 1987–89: spline monótono entre 1986 y 1990–2003 -----------
corr_known <- bind_rows(
chained |> filter(state_name == "CORRIENTES"),
anchor |> filter(state_name == "CORRIENTES") |>
transmute(state_name, year = 2004, gdp_dollars_2021 = gdp_2004,
type_cat = "anchor")) |>
arrange(year)
fh <- splinefun(corr_known$year, corr_known$gdp_dollars_2021, method = "monoH.FC")
corr_8789 <- tibble(state_name = "CORRIENTES", year = 1987:1989,
gdp_dollars_2021 = fh(1987:1989),
type_cat = "interpolated")
# --- 4) ensamblado: 1980–2003 propuesto + 2004–2024 intacto ------------------
propuesta_pre2004 <- bind_rows(chained, corr_8085, corr_8789) |>
arrange(state_name, year) |>
rename(gdp_dollars_2004 = gdp_dollars_2021)
####Hasta este punto, tenemos la serie de 1980 a 2004 en pesos constantes del 2004. Lo único que se modificó del proceso del archivo retropolacion_ar_1980_2003 fue la base anchor que ahora contiene los valores de PIB a pesos del 2004.
Aplicación de deflactor y división por el tipo de cambio
Se deja las variables listas para modificarse en futuros procesos de automatización.
Show code
## Deflactor (Listo para cambiarse)
ipc_arg <- 78.11
## Tipo de Cambio (Listo para cambiarse)
tipo_de_cambio <- 95.19159Procedimiento:
Show code
propuesta_pre2004 <- propuesta_pre2004 |>
mutate(
gdp_dollars_2021 = (gdp_dollars_2004 * ipc_arg) / tipo_de_cambio
) |>
select(-gdp_dollars_2004)Una vez realizado esto se realiza la unión final.
Unión de bases de datos y verificación.
Show code
serie_final <- bind_rows(
propuesta_pre2004 |> mutate(type = NA_real_),
def |> filter(year >= 2004)) |>
arrange(state_name, year)Show code
# --- 5) verificación: el empalme 2003→2004 debe quedar en rangos razonables --
verif <- serie_final |>
group_by(state_name) |>
arrange(year, .by_group = TRUE) |>
mutate(g = 100 * (gdp_dollars_2021 / lag(gdp_dollars_2021) - 1)) |>
filter(year == 2004) |>
select(state_name, crecimiento_2003_2004_pct = g) |>
arrange(desc(crecimiento_2003_2004_pct))
print(verif, n = 24)# A tibble: 24 × 2
# Groups: state_name [24]
state_name crecimiento_2003_2004_pct
<chr> <dbl>
1 MENDOZA 14.7
2 MISIONES 14.0
3 BUENOS AIRES 11.7
4 SAN JUAN 11.2
5 LA PAMPA 10.9
6 CORRIENTES 9.15
7 CHUBUT 9.09
8 TUCUMAN 9.01
9 CAPITAL FEDERAL 8.78
10 LA RIOJA 8.64
11 TIERRA DEL FUEGO 7.69
12 SANTA FE 7.49
13 ENTRE RIOS 7.36
14 SALTA 7.24
15 FORMOSA 7.18
16 RIO NEGRO 6.93
17 JUJUY 6.80
18 CATAMARCA 6.25
19 SAN LUIS 4.97
20 SANTIAGO DEL ESTERO 3.41
21 CORDOBA 2.96
22 CHACO 1.37
23 SANTA CRUZ 0.839
24 NEUQUEN -3.05
Show code
# Esperado: máximo ~+15% (Mendoza), sin ningún salto tipo -30%/+59%.
# Comparar con la definitiva actual: Corrientes -30%, Santiago del Estero +59%, Catamarca +26% — esos tres desaparecen.
# Chequeo extra: cobertura completa 24 provincias x 45 años (1980–2024)
stopifnot(nrow(serie_final) == 24 * 45)Validación Gráfica.
Show code
# Leer el CSV
csv <- read_csv("gdp_ar_1980_2024_propuesta.csv")
# Comparar
comparacion <- serie_final |>
select(state_name, year, gdp_dollars_2021) |>
rename(gdp_serie = gdp_dollars_2021) |>
inner_join(
csv |>
select(state_name, year, gdp_dollars_2021) |>
rename(gdp_csv = gdp_dollars_2021),
by = c("state_name", "year")
) |>
mutate(
diff_pct = 100 * (gdp_serie - gdp_csv) / gdp_csv
)
### Gráfico
comparacion |>
mutate(
diff_pct_plot = if_else(abs(diff_pct) < 1e-8, 0, diff_pct)
) |>
ggplot(aes(x = year, y = diff_pct_plot, color = state_name)) +
geom_hline(yintercept = 0, linetype = "dashed") +
geom_line(linewidth = 0.8) +
labs(
x = "Año",
y = "Diferencia (%)",
title = "Diferencia porcentual entre serie_final y el CSV"
) +
theme_minimal() +
theme(legend.position = "none")Este validación gráfica comprueba que ambas series coinciden!
La siguiente sección del código únicamente pone la serie final a la usanza del spp.
Codificación Usanza SPP
Ahora únicamente queda modificar la base para que quede a la usanza del SPP:
Show code
arg_gdp <- serie_final |>
left_join(argentina_coding, by = "state_name") |>
mutate(
type = case_when(
type_cat == "official_chained_nys" ~ 0,
type_cat %in% c("interpolated", "estimated_share") ~ 1,
TRUE ~ type
)
) |>
select(
country_name,
country_code,
region_name,
state_name,
state_code,
country_state_code,
year,
gdp_dollars_2021,
type,
type_cat
)Ya con esto tenemos los registros que reemplazaremos en las bases definitivas.
México
Con México lo que se hará es hacer la deflactación empleando el INPC nacional y no uno para cada estado.
Lectura de datos.
Show code
# Extraer de la línea 4 a la 39 donde se encuentran los datos relevantes.
pib_subnacional_mexico <- read_excel("pib_subnacional_mexico.xlsx") |>
slice(4:39)
# Usar la primera fila como nombres de columnas
colnames(pib_subnacional_mexico) <- as.character(pib_subnacional_mexico[1, ])
# Eliminar las primeras 3 filas, que no contienen información relevante
pib_subnacional_mexico <- pib_subnacional_mexico %>%
slice(-(1:4)) |>
rename(
entidad = `Concepto`,
`2023` = `2023R`,
`2024` = `2024P`
)
pib_subnacional_mexico |>
slice_head(n = 10) |>
kbl(caption = "Tabla 1. Méx. PIB por unidad subnacional", align = "l") |>
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE
)| entidad | 1980 | 1981 | 1982 | 1983 | 1984 | 1985 | 1986 | 1987 | 1988 | 1989 | 1990 | 1991 | 1992 | 1993 | 1994 | 1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Aguascalientes | 74478.826000000001 | 82816.058000000005 | 83133.482999999993 | 78800.570999999996 | 82466.824999999997 | 84980.153000000006 | 81602.732999999993 | 84379.077999999994 | 86482.198999999993 | 91061.619000000006 | 97895.019 | 103728.74099999999 | 109843.958 | 114706.122 | 121683.61 | 116418.715 | 124298.764 | 133594.837 | 143027.44399999999 | 145644.38500000001 | 158299.88399999999 | 167309.35 | 174918.42800000001 | 176576.72099999999 | 182404.56099999999 | 185650.54199999999 | 200318.26500000001 | 219091.899 | 218472.94699999999 | 201960.39600000001 | 219912.90599999999 | 230510.39799999999 | 242758.40900000001 | 251657.00700000001 | 277675.25799999997 | 294497.17499999999 | 307395.84100000001 | 314242.37900000002 | 327926.30699999997 | 329358.364 | 307125.68300000002 | 315233.12 | 314602.24699999997 | 334314.66600000003 | 328087.96500000003 |
| Baja California | 400156.97100000002 | 451676.82699999999 | 446781.45299999998 | 406200.11300000001 | 425488.625 | 437529.217 | 402275.15399999998 | 414361.76299999998 | 417816.03899999999 | 436724.07799999998 | 467382.39600000001 | 487452.21100000001 | 511546.29499999998 | 513177.24900000001 | 548270.478 | 494337.73700000002 | 558044.57499999995 | 631004.25100000005 | 662820.82200000004 | 720343.96400000004 | 790646.79299999995 | 730554.23699999996 | 696088.19900000002 | 682996.92799999996 | 697268.68900000001 | 716802.17099999997 | 772686.80799999996 | 778767.04799999995 | 756707.31900000002 | 658790.71200000006 | 686065.86499999999 | 698850.50699999998 | 726418.10600000003 | 733753.71100000001 | 760856.96699999995 | 795080.74699999997 | 828692.24699999997 | 863600.64899999998 | 878816.86800000002 | 893946.24899999995 | 839693.34 | 896313.55900000001 | 919300.27800000005 | 947957.51899999997 | 947677.00899999996 |
| Baja California Sur | 53015.906000000003 | 57736.199000000001 | 58188.199000000001 | 57232.819000000003 | 59391.459000000003 | 60739.521999999997 | 59879.334000000003 | 61326.62 | 62347.413 | 65210.463000000003 | 67808.263999999996 | 71483.581999999995 | 74828.892999999996 | 72837.861000000004 | 75145.063999999998 | 72405.422000000006 | 80971.993000000002 | 84520.69 | 86993.271999999997 | 89307.070999999996 | 95187.275999999998 | 99668.467000000004 | 97301.797000000006 | 102696.425 | 110723.357 | 117708.462 | 126685.37 | 137545.255 | 142084.054 | 134464.67600000001 | 138668.83199999999 | 144956.375 | 147269.70199999999 | 145215.69 | 147613.68400000001 | 156072.03400000001 | 163094.64799999999 | 170784.40299999999 | 184618.103 | 177860.75 | 151931.29 | 171064.57500000001 | 178129.82399999999 | 180788.204 | 187152.16099999999 |
| Campeche | 511362.33600000001 | 560971.27599999995 | 559721.98800000001 | 523134.52799999999 | 546199.16200000001 | 566378.35600000003 | 548649.86199999996 | 570391.17299999995 | 588026.45200000005 | 614610.51800000004 | 649387.91899999999 | 671524.50100000005 | 692158.83799999999 | 687476.86600000004 | 713798.59499999997 | 678258.36100000003 | 734002.00699999998 | 777814.21499999997 | 808927.14300000004 | 763456.63100000005 | 826278.19 | 892409.08799999999 | 913435.10400000005 | 986877.72400000005 | 998062.31499999994 | 985831.29500000004 | 959641.06299999997 | 897799.85499999998 | 828677.16799999995 | 753908.78399999999 | 730232.32400000002 | 711663.19099999999 | 691262.00399999996 | 692549.897 | 685992.02500000002 | 700310.74100000004 | 663239.24199999997 | 595666.96 | 564591.05599999998 | 541962.92599999998 | 500514.72600000002 | 489604.29499999998 | 472680.02399999998 | 508514.61700000003 | 473399.45699999999 |
| Coahuila de Zaragoza | 362298.76199999999 | 401419.87 | 400947.44099999999 | 372296.47200000001 | 388155.755 | 399779.40299999999 | 375949.16899999999 | 384635.71299999999 | 387781.17700000003 | 400158.299 | 423114.63199999998 | 437256.44500000001 | 460053.092 | 470418.45600000001 | 479739.94199999998 | 466715.13500000001 | 541594.61 | 593148.48300000001 | 627310.17200000002 | 640331.19499999995 | 655490.87 | 657960.99399999995 | 693560.01399999997 | 725622.35199999996 | 738323.00899999996 | 751258.28300000005 | 798549.10100000002 | 819995.32 | 806977.054 | 647795.10800000001 | 775118.74300000002 | 824838.46699999995 | 870634.53099999996 | 864429.38300000003 | 902863.24100000004 | 897702.09499999997 | 901719.48400000005 | 941581.76300000004 | 966054.66200000001 | 953384.33400000003 | 843597.571 | 921586.98300000001 | 935841.223 | 927968.19299999997 | 922286.18900000001 |
| Colima | 63715.01 | 69001.929000000004 | 69593.668999999994 | 68026.277000000002 | 70501.031000000003 | 72487.649000000005 | 71375.437999999995 | 73308.392000000007 | 74614.039000000004 | 76928.024999999994 | 80232.039000000004 | 82613.489000000001 | 84539.724000000002 | 86396.611999999994 | 90021.396999999997 | 85408.456000000006 | 91716.410999999993 | 95885.861999999994 | 103304.32399999999 | 106422.374 | 110550.51 | 108484.81200000001 | 109196.395 | 106240.461 | 107179.09299999999 | 107631.26300000001 | 114843.833 | 122046.01300000001 | 124498.00599999999 | 118472.235 | 125595.851 | 133676.15900000001 | 135599.86499999999 | 133729.296 | 135090.72500000001 | 141029.12899999999 | 140705.23800000001 | 150360.09599999999 | 153808.394 | 161109.85800000001 | 148143.27299999999 | 147667.296 | 148438.43400000001 | 153354.77799999999 | 157139.889 |
| Chiapas | 200061.47 | 212022.28400000001 | 213802.06599999999 | 211467.23 | 217413.49799999999 | 221924.46900000001 | 221017.022 | 225978.77 | 230321.52299999999 | 237262.25200000001 | 246057.65400000001 | 253835.72099999999 | 262154.11700000003 | 271140.54700000002 | 281576.82400000002 | 280089.47200000001 | 277752.38099999999 | 286887.61499999999 | 304458.95899999997 | 304224.77799999999 | 309796.913 | 308418.26 | 312380.02100000001 | 314665.41100000002 | 304083.364 | 310293.58199999999 | 321113.54599999997 | 324676.53200000001 | 337160.57799999998 | 332432.799 | 355978.85700000002 | 361270.255 | 370237.30499999999 | 360620.97700000001 | 374691.48700000002 | 364001.28200000001 | 369919.28700000001 | 359734.408 | 353600.11300000001 | 348914.39199999999 | 337240.435 | 353638.51 | 374518.00300000003 | 379626.19900000002 | 389794.85200000001 |
| Chihuahua | 303189.89799999999 | 336143.54700000002 | 334520.59399999998 | 315609.48200000002 | 327938.86700000003 | 336124.56199999998 | 318334.84399999998 | 325130.196 | 326595.35399999999 | 336951.95799999998 | 357492.57199999999 | 370983.42200000002 | 385367.50900000002 | 399928.05300000001 | 417236.55900000001 | 403134.63900000002 | 435992.033 | 465482.54700000002 | 507712.96500000003 | 535621.56799999997 | 581263.82200000004 | 554947.18200000003 | 545694.429 | 559444.75800000003 | 577532.78399999999 | 592161.22199999995 | 635597.82400000002 | 664331.06299999997 | 696713.272 | 626309.62399999995 | 647629.946 | 662042.78700000001 | 711480.75699999998 | 732550.603 | 753194.78 | 803883.27599999995 | 830488.50899999996 | 851284.31299999997 | 853322.804 | 866861.299 | 808710.89099999995 | 846063.93799999997 | 911271.14199999999 | 940100.50899999996 | 930854.91 |
| Ciudad de México | 1831598.702 | 2023097.662 | 2017375.6229999999 | 1937032.27 | 1992078.797 | 1989027.993 | 1890532.2039999999 | 1896703.477 | 1897079.4339999999 | 1966175.1140000001 | 2060708.4739999999 | 2161707.696 | 2235098.068 | 2354923.7990000001 | 2448263.341 | 2292168.7519999999 | 2381093.8169999998 | 2556605.051 | 2657943.1370000001 | 2739399.4920000001 | 2903708.8220000002 | 2870934.1570000001 | 2893524.3089999999 | 2842788.554 | 2962342.2140000002 | 2991075.2439999999 | 3134225.2170000002 | 3142463.801 | 3183429.429 | 3008811.7659999998 | 3125716.6910000001 | 3231440.2390000001 | 3332208.7209999999 | 3363394.3250000002 | 3412110.1979999999 | 3503520.1129999999 | 3571368.1880000001 | 3646318.179 | 3694574.8739999998 | 3679917.3459999999 | 3293855.3080000002 | 3496055.8110000002 | 3650377.6189999999 | 3805614.443 | 3885956.5929999999 |
| Durango | 138131.74900000001 | 149622.29 | 148864.49299999999 | 142374.33199999999 | 146541.785 | 149331.258 | 144410.954 | 147319.56 | 149135.74100000001 | 153874.10699999999 | 160987.57 | 165970.86300000001 | 169449.99100000001 | 172783.065 | 181317.13 | 174420.96299999999 | 183390.103 | 190883.33100000001 | 206637.853 | 206787.114 | 208654.022 | 217801.31700000001 | 218739.592 | 231278.924 | 242836.198 | 235761.59899999999 | 241373.38399999999 | 248235.60500000001 | 261332.53200000001 | 256632.61300000001 | 261476.68599999999 | 273067.299 | 286058.27399999998 | 299615.20500000002 | 307939.663 | 300289.37599999999 | 305382.234 | 304646.65700000001 | 308981.25400000002 | 309426.43599999999 | 286240.78200000001 | 303251.38099999999 | 300478.11300000001 | 309199.136 | 323802.35700000002 |
Show code
### Datos de INPC
inpc_mex <- read_csv("conjunto_de_datos_inpc_mensual.csv")
### Promedios de INPC
inpc_mex |>
mutate(FECHA = dmy(FECHA),
year = year(FECHA)) |>
filter(year %in% c(2018, 2021)) |>
group_by(year) |>
summarise(
inpc_promedio = mean(VALOR, na.rm = TRUE)
)# A tibble: 2 × 2
year inpc_promedio
<dbl> <dbl>
1 2018 101.
2 2021 115.
Fuente: https://www.inegi.org.mx/programas/inpc/2018a/#datos_abiertos
Deflactación y aplicación del tipo de cambio
\[ \text{PIB}_{i,\; \text{base2021}} = \text{PIB}_{i,\; \text{base2018}} \times \left( \frac{\text{Promedio INPC}_{i,\;2021}}{\text{Promedio INPC}_{i,\;2018}} \right) \] Se deja las variables listas para modificarse en futuros procesos de automatización.
Show code
## Deflactor (Listo para cambiarse)
inpc_2018 <- 100.5578
inpc_2021 <- 114.6001
deflactor_mex <- inpc_2018/inpc_2021
## Tipo de Cambio promedio 2021 (Listo para cambiarse)
tipo_de_cambio_mex <- 20.27564Show code
pib_subnacional_mexico_long <- pib_subnacional_mexico |>
pivot_longer(
cols = matches("^\\d{4}$"),
names_to = "year",
values_to = "gdp_dollars_current"
) |>
mutate(
year = as.integer(year)
) Show code
mexico_gdp_raw <- pib_subnacional_mexico_long |>
mutate(gdp_dollars_current = as.numeric(gdp_dollars_current)) |>
mutate(
gdp_dollars_2021 = (gdp_dollars_current * deflactor_mex) / tipo_de_cambio_mex
) |>
select(-gdp_dollars_current)Listo! El procedimiento anterior resuelve con éxito el problema de los deflactores. Ahora únicamente queda codificarlo a la usanza SPP.
Codificación Usanza SPP.
Show code
### Igualación de nombres, join y reordenamiento de columnas
library(dplyr)
mexico_gdp <- mexico_gdp_raw |>
mutate(
entidad = case_when(
entidad == "Aguascalientes" ~ "AGUASCALIENTES",
entidad == "Baja California" ~ "BAJA CALIFORNIA",
entidad == "Baja California Sur" ~ "BAJA CALIFORNIA SUR",
entidad == "Campeche" ~ "CAMPECHE",
entidad == "Coahuila de Zaragoza" ~ "COAHUILA",
entidad == "Colima" ~ "COLIMA",
entidad == "Chiapas" ~ "CHIAPAS",
entidad == "Chihuahua" ~ "CHIHUAHUA",
entidad == "Ciudad de México" ~ "CDMX",
entidad == "Durango" ~ "DURANGO",
entidad == "Guanajuato" ~ "GUANAJUATO",
entidad == "Guerrero" ~ "GUERRERO",
entidad == "Hidalgo" ~ "HIDALGO",
entidad == "Jalisco" ~ "JALISCO",
entidad == "México" ~ "MEXICO",
entidad == "Michoacán de Ocampo" ~ "MICHOACAN",
entidad == "Morelos" ~ "MORELOS",
entidad == "Nayarit" ~ "NAYARIT",
entidad == "Nuevo León" ~ "NUEVO LEON",
entidad == "Oaxaca" ~ "OAXACA",
entidad == "Puebla" ~ "PUEBLA",
entidad == "Querétaro" ~ "QUERETARO",
entidad == "Quintana Roo" ~ "QUINTANA ROO",
entidad == "San Luis Potosí" ~ "SAN LUIS POTOSI",
entidad == "Sinaloa" ~ "SINALOA",
entidad == "Sonora" ~ "SONORA",
entidad == "Tabasco" ~ "TABASCO",
entidad == "Tamaulipas" ~ "TAMAULIPAS",
entidad == "Tlaxcala" ~ "TLAXCALA",
entidad == "Veracruz de Ignacio de la Llave" ~ "VERACRUZ",
entidad == "Yucatán" ~ "YUCATAN",
entidad == "Zacatecas" ~ "ZACATECAS",
TRUE ~ entidad
)
) |>
left_join(mexico_coding, by = c("entidad" = "state_name")) |>
rename(state_name = entidad) |>
mutate(
type = 0,
type_cat = "official_data"
) |>
select(
country_name,
country_code,
region_name,
state_name,
state_code,
country_state_code,
year,
gdp_dollars_2021,
type,
type_cat
)Integración a base de datos PIB dólares de 2021
Show code
#gdp_spp_final <- def |>
# filter(!country_name %in% c("ARGENTINA", "MEXICO"))
#gdp_spp_final <- bind_rows(
# arg_gdp,
# gdp_spp_final,
# mexico_gdp
#)
#write_xlsx(gdp_spp_final, "gdp_spp_usd_2021_final.xlsx")Recálculo de PIB Per Capita
Show code
### Lectura
spp_pop <- read_excel("spp_pop.xlsx")
gdp_spp <- read_excel("gdp_spp_usd_2021_final.xlsx")
### Proceso
gdp_per_capita_spp <- gdp_spp %>%
# 1. Unir población
left_join(
spp_pop %>%
select(country_state_code, year, total_population),
by = c("country_state_code", "year")
) %>%
# 2. Calcular PIB per cápita (USD 2021, gdp está en millones)
mutate(
gdp_per_capita = (gdp_dollars_2021 * 1e6) / total_population
) %>%
mutate(gdp_per_capita = round(gdp_per_capita,1)) |>
# 3. Clasificación consistente con tu lógica previa
mutate(
source = "own_calculus",
type = 1L,
type_cat = "own_calculus"
) %>%
# 4. Orden final de variables
select(
country_name,
country_code,
region_name,
state_name,
state_code,
country_state_code,
year,
gdp_per_capita,
source,
type,
type_cat
)Show code
### Escritura
#write_xlsx(
# gdp_per_capita_spp,
# "gdp_per_capita_usd_2021_spp.xlsx"
#)Conclusión
La aplicación de estos procedimientos resulta en la versión final de las bases de PIB y PIB Per Cápita.