CPIDataBase

Este paquete provee estructuras de datos y operaciones básicas para el análisis desagregado del Índice de Precios al Consumidor (IPC). El objetivo de este paquete es proveer una herramienta de análisis y consulta de los datos desagregados a nivel de gasto básico del IPC de cualquier país para estudios relacionados con la inflación.

Estructura de datos del IPC

La estructura principal de datos es un contenedor de tipo CountryStructure. Supongamos que los datos del IPC de un país ficticio, llamado Macronia, se encuentran disponibles en la constante countrydata:

using CPIDataBase
# Cargar o construir countrydata
# (...)
countrydata
UniformCountryStructure{2, Float32, Float32} con 2 bases
└─→ VarCPIBase{Float32, Float32}: 120 periods × 218 items Jan-01-Dec-10
└─→ VarCPIBase{Float32, Float32}: 120 periods × 279 items Jan-11-Dec-20

Este contenedor posee los datos del IPC de Macronia de las últimas dos décadas. Está dividido en dos estructuras de datos denominadas VarCPIBase. Cada estructura contiene las variaciones intermensuales de los números índices de precios de los gastos básicos individuales del IPC de Macronia. A su vez, el IPC de Macronia está dividido históricamente en dos bases del IPC, cada una conlleva una metodología diferente, con diferentes gastos básicos y ponderaciones en la canasta de consumo:

Por ejemplo, estos son los datos históricos de Macronia en la década del 2000:

countrydata[1]
VarCPIBase{Float32, Float32}: 120 periods × 218 items Jan-01-Dec-10
┌─────┬────────────┬──────────┬──────────┬──────────┬──────────┬──────────┬─────
│ Row       Dates         1         2         3         4         5     ⋯
│     │             0.651763  0.456681  0.612421  0.857528  0.551051  0. ⋯
├─────┼────────────┼──────────┼──────────┼──────────┼──────────┼──────────┼─────
│   1 │ 2001-01-01 │   0.2580 │   0.0419 │   0.3220 │   0.2971 │   0.0859 │    ⋯
│   2 │ 2001-02-01 │   0.0111 │   0.4550 │   0.5000 │   0.4027 │   0.3825 │    ⋯
│   3 │ 2001-03-01 │   0.3464 │   0.0108 │   0.2686 │   0.0572 │   0.2276 │    ⋯
│   4 │ 2001-04-01 │   0.2931 │   0.4726 │   0.2449 │   0.0535 │   0.4032 │    ⋯
│   5 │ 2001-05-01 │   0.1467 │   0.2803 │   0.2226 │   0.1968 │   0.2601 │    ⋯
│   6 │ 2001-06-01 │   0.1675 │   0.2099 │   0.4322 │   0.3306 │   0.4920 │    ⋯
│   7 │ 2001-07-01 │   0.3232 │   0.3003 │   0.3833 │   0.4470 │   0.3877 │    ⋯
│   8 │ 2001-08-01 │   0.4247 │   0.1252 │   0.3796 │   0.4734 │   0.2822 │    ⋯
│  ⋮  │     ⋮      │    ⋮     │    ⋮     │    ⋮     │    ⋮     │    ⋮     │    ⋱
│ 114 │ 2010-06-01 │   0.0317 │   0.1831 │   0.0228 │   0.1825 │   0.2340 │    ⋯
│ 115 │ 2010-07-01 │   0.3651 │   0.2857 │   0.0598 │   0.4985 │   0.4464 │    ⋯
│ 116 │ 2010-08-01 │   0.3418 │   0.1520 │   0.1478 │   0.1681 │   0.4425 │    ⋯
│ 117 │ 2010-09-01 │   0.2202 │   0.3196 │   0.4324 │   0.4508 │   0.3661 │    ⋯
│ 118 │ 2010-10-01 │   0.0810 │   0.1329 │   0.1993 │   0.0186 │   0.3604 │    ⋯
│ 119 │ 2010-11-01 │   0.3648 │   0.0802 │   0.3553 │   0.0285 │   0.0579 │    ⋯
│ 120 │ 2010-12-01 │   0.1880 │   0.2143 │   0.4538 │   0.2047 │   0.2988 │    ⋯
└─────┴────────────┴──────────┴──────────┴──────────┴──────────┴──────────┴─────
                                                213 columns and 105 rows omitted

Y estos son los datos históricos de Macronia en la década del 2010:

countrydata[2]
VarCPIBase{Float32, Float32}: 120 periods × 279 items Jan-11-Dec-20
┌─────┬────────────┬──────────┬──────────┬────────────┬──────────┬──────────┬───
│ Row       Dates         1         2           3         4         5   ⋯
│     │             0.414438  0.292588  0.00550835  0.344338  0.548554   ⋯
├─────┼────────────┼──────────┼──────────┼────────────┼──────────┼──────────┼───
│   1 │ 2011-01-01 │   0.3243 │   0.3451 │     0.4973 │   0.1283 │   0.4625 │  ⋯
│   2 │ 2011-02-01 │   0.2736 │   0.0464 │     0.4652 │   0.2997 │   0.0757 │  ⋯
│   3 │ 2011-03-01 │   0.4943 │   0.0056 │     0.4488 │   0.2900 │   0.4029 │  ⋯
│   4 │ 2011-04-01 │   0.3515 │   0.0370 │     0.1886 │   0.1348 │   0.1732 │  ⋯
│   5 │ 2011-05-01 │   0.4307 │   0.1479 │     0.4897 │   0.4083 │   0.1998 │  ⋯
│   6 │ 2011-06-01 │   0.4368 │   0.1169 │     0.4964 │   0.0181 │   0.2005 │  ⋯
│   7 │ 2011-07-01 │   0.0262 │   0.4391 │     0.4696 │   0.1790 │   0.3394 │  ⋯
│   8 │ 2011-08-01 │   0.2967 │   0.0346 │     0.1964 │   0.2816 │   0.1717 │  ⋯
│  ⋮  │     ⋮      │    ⋮     │    ⋮     │     ⋮      │    ⋮     │    ⋮     │  ⋱
│ 114 │ 2020-06-01 │   0.1574 │   0.1299 │     0.0615 │   0.0117 │   0.2666 │  ⋯
│ 115 │ 2020-07-01 │   0.1120 │   0.0707 │     0.0025 │   0.3823 │   0.3474 │  ⋯
│ 116 │ 2020-08-01 │   0.4643 │   0.3880 │     0.4577 │   0.3145 │   0.2069 │  ⋯
│ 117 │ 2020-09-01 │   0.0082 │   0.3185 │     0.2690 │   0.1330 │   0.1208 │  ⋯
│ 118 │ 2020-10-01 │   0.3866 │   0.1928 │     0.2379 │   0.1122 │   0.1519 │  ⋯
│ 119 │ 2020-11-01 │   0.2008 │   0.1774 │     0.2514 │   0.2768 │   0.0444 │  ⋯
│ 120 │ 2020-12-01 │   0.3821 │   0.1652 │     0.2495 │   0.4045 │   0.1852 │  ⋯
└─────┴────────────┴──────────┴──────────┴────────────┴──────────┴──────────┴───
                                                274 columns and 105 rows omitted

Vea la documentación de FullCPIBase para conocer cómo crear la estructura de datos del IPC necesaria. Los datos de un FullCPIBase pueden ser convertidos a un VarCPIBase. La estructura principal de datos de este paquete es un contenedor de tipo CountryStructure, el cual permite realizar cómputos de diferentes metodologías de inflación.

Cómputo del IPC

Con la estructura countrydata es posible computar el Índice de Precios al Consumidor encadenado automáticamente entre las dos bases del IPC:

inflfn = InflationTotalCPI()
inflfn(countrydata, CPIIndex())
240-element Vector{Float32}:
 100.270584
 100.53216
 100.791885
 101.06144
 101.312386
 101.55695
 101.819954
 102.062675
 102.32216
 102.57742
   ⋮
 178.9764
 179.41493
 179.86911
 180.32135
 180.77304
 181.19852
 181.65437
 182.08377
 182.48575

En este ejemplo, la variable inflfn denota una "función de inflación". Utilizando diferentes funciones de inflación podemos computar diferentes medidas de inflación con los datos desagregados del IPC. Por ejemplo, el siguiente código computa la variación interanual del IPC, ampliamente utilizada como una medida de inflación en las economías del mundo:

inflfn = InflationTotalCPI()
inflfn(countrydata)
229-element Vector{Float32}:
 3.0753136
 3.0733705
 3.078866
 3.0676842
 3.03334
 3.0423284
 3.055644
 3.0453205
 3.0618787
 3.0547261
 ⋮
 3.0424237
 3.0521512
 3.0589342
 3.056097
 3.0666232
 3.0490994
 3.0496597
 3.0243635
 2.9875517