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} with 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        Date         1        2         3         4        5       ⋯
│     │             0.562079  0.28245  0.366282  0.508997  0.74837  0.41 ⋯
├─────┼────────────┼──────────┼─────────┼──────────┼──────────┼─────────┼───────
│   1 │ 2001-01-01 │   0.0698 │  0.0412 │   0.1374 │   0.3681 │  0.2770 │   0. ⋯
│   2 │ 2001-02-01 │   0.0340 │  0.0875 │   0.0233 │   0.3086 │  0.4847 │   0. ⋯
│   3 │ 2001-03-01 │   0.2654 │  0.3605 │   0.0562 │   0.3763 │  0.0057 │   0. ⋯
│   4 │ 2001-04-01 │   0.3294 │  0.1326 │   0.3217 │   0.0198 │  0.3184 │   0. ⋯
│   5 │ 2001-05-01 │   0.0602 │  0.4691 │   0.3638 │   0.2051 │  0.1709 │   0. ⋯
│   6 │ 2001-06-01 │   0.2239 │  0.0452 │   0.2947 │   0.1247 │  0.1118 │   0. ⋯
│   7 │ 2001-07-01 │   0.3224 │  0.0338 │   0.4411 │   0.2365 │  0.0469 │   0. ⋯
│   8 │ 2001-08-01 │   0.0762 │  0.2435 │   0.3364 │   0.0380 │  0.1876 │   0. ⋯
│  ⋮  │     ⋮      │    ⋮     │    ⋮    │    ⋮     │    ⋮     │    ⋮    │    ⋮ ⋱
│ 114 │ 2010-06-01 │   0.2146 │  0.2231 │   0.2987 │   0.4709 │  0.2924 │   0. ⋯
│ 115 │ 2010-07-01 │   0.1666 │  0.2570 │   0.3999 │   0.3034 │  0.3691 │   0. ⋯
│ 116 │ 2010-08-01 │   0.4721 │  0.2964 │   0.2186 │   0.0766 │  0.1511 │   0. ⋯
│ 117 │ 2010-09-01 │   0.1236 │  0.3975 │   0.3837 │   0.3759 │  0.3564 │   0. ⋯
│ 118 │ 2010-10-01 │   0.4266 │  0.1676 │   0.0035 │   0.0724 │  0.4179 │   0. ⋯
│ 119 │ 2010-11-01 │   0.1124 │  0.3740 │   0.1083 │   0.1786 │  0.4544 │   0. ⋯
│ 120 │ 2010-12-01 │   0.3615 │  0.2158 │   0.2356 │   0.0737 │  0.3607 │   0. ⋯
└─────┴────────────┴──────────┴─────────┴──────────┴──────────┴─────────┴───────
                                                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        Date         1         2         3         4         5     ⋯
│     │             0.284077  0.705524  0.709153  0.540332  0.212387  0. ⋯
├─────┼────────────┼──────────┼──────────┼──────────┼──────────┼──────────┼─────
│   1 │ 2011-01-01 │   0.4497 │   0.2829 │   0.2603 │   0.0663 │   0.1896 │    ⋯
│   2 │ 2011-02-01 │   0.0675 │   0.0783 │   0.0471 │   0.2030 │   0.3200 │    ⋯
│   3 │ 2011-03-01 │   0.0541 │   0.1969 │   0.4518 │   0.4263 │   0.2954 │    ⋯
│   4 │ 2011-04-01 │   0.3477 │   0.4087 │   0.4189 │   0.4492 │   0.0037 │    ⋯
│   5 │ 2011-05-01 │   0.0933 │   0.2554 │   0.0443 │   0.4439 │   0.4367 │    ⋯
│   6 │ 2011-06-01 │   0.2866 │   0.3926 │   0.4382 │   0.1000 │   0.0713 │    ⋯
│   7 │ 2011-07-01 │   0.1282 │   0.1792 │   0.1676 │   0.1406 │   0.4996 │    ⋯
│   8 │ 2011-08-01 │   0.0306 │   0.1833 │   0.2127 │   0.3442 │   0.4580 │    ⋯
│  ⋮  │     ⋮      │    ⋮     │    ⋮     │    ⋮     │    ⋮     │    ⋮     │    ⋱
│ 114 │ 2020-06-01 │   0.1587 │   0.0095 │   0.0077 │   0.3287 │   0.2163 │    ⋯
│ 115 │ 2020-07-01 │   0.4830 │   0.3595 │   0.4314 │   0.1752 │   0.4906 │    ⋯
│ 116 │ 2020-08-01 │   0.0957 │   0.3355 │   0.4236 │   0.2252 │   0.1438 │    ⋯
│ 117 │ 2020-09-01 │   0.4652 │   0.4328 │   0.0363 │   0.4901 │   0.0014 │    ⋯
│ 118 │ 2020-10-01 │   0.3574 │   0.2566 │   0.3493 │   0.3614 │   0.0874 │    ⋯
│ 119 │ 2020-11-01 │   0.2009 │   0.4744 │   0.1929 │   0.4859 │   0.0306 │    ⋯
│ 120 │ 2020-12-01 │   0.2945 │   0.1696 │   0.0464 │   0.0164 │   0.3819 │    ⋯
└─────┴────────────┴──────────┴──────────┴──────────┴──────────┴──────────┴─────
                                                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.23751
 100.4843
 100.7454
 101.01449
 101.24962
 101.49682
 101.72555
 101.97304
 102.22432
 102.49463
   ⋮
 178.53387
 178.97734
 179.45734
 179.89046
 180.36044
 180.81688
 181.29083
 181.7479
 182.20778

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.018248
 3.0434728
 3.0313134
 3.026104
 3.0225873
 3.042221
 3.04662
 3.0792236
 3.079939
 3.085637
 ⋮
 3.0497432
 3.0636668
 3.0745268
 3.085649
 3.1029105
 3.091848
 3.0982375
 3.109324
 3.1028628