
Simulación de la Inflación
Índice de contenido
Resumen:
En la presente entrada se investiga el impacto de diferentes escenarios sobre la inflación y los precios al consumidor de Gran Bretaña (como porcentaje anual) usando el modelo de simulación de Monte Carlo. En particular, se emplea este modelo para determinar la probabilidad de un cambio en la deuda del gobierno central del país a través de múltiples ensayos. Este método es útil cuando se manejan datos secuenciales.
¿Cómo citar el presente artículo?
Romero, J. (9 de enero de 2018). Simulación de la Inflación. Python.JeshuaRomeroGuadarrama. https://www.Python.jeshuaromeroguadarrama.com/es/blog/data-science-and-econometrics/inflation-simulation/.
Simulación de la Inflación by Jeshua Romero Guadarrama, available under Attribution 4.0 International (CC BY 4.0) at https://www.Python.jeshuaromeroguadarrama.com/es/blog/data-science-and-econometrics/inflation-simulation/.
Simulación de la Inflación
Comprender la simulación
En la presente entrada se estudia el modelo de simulación de Monte Carlo. El cual es un modelo no supervisado, dado que no divide los datos: El modelo explora todo el conjunto de datos. Aprende a partir de todos los datos a través de múltiples ensayos para tener en cuenta la posibilidad de que ocurra un evento. Así pues, se investiga el impacto de diferentes escenarios sobre la deuda del gobierno central de Gran Bretaña mediante la aplicación del modelo Monte Carlo, que determina la probabilidad de un cambio en la deuda del gobierno central en diez escenarios (el número de simulaciones). Dicho modelo se utiliza en escenarios financieros para determinar los riesgos y la incertidumbre relacionados con la inversión en una determinada clase de activos.
Este método reproduce valores en variables a través de diferentes iteraciones. Al hacerlo, permite examinar los cambios en los datos varias veces. Existen muchos métodos de simulación (es decir, simulación basada en agentes, simulación de eventos discretos, simulación de dinámica de sistemas y simulación de Monte Carlo). Sin embargo, el objetivo es solo familiarizarse con el método de simulación más común: El método de simulación de Monte Carlo. Simula cambios y reconoce patrones en ocurrencias pasadas y pronostica valores de una secuencia, lo que permite a los desarrolladores replicar eventos en el mundo real.
A diferencia de otros modelos (como k-medias), este modelo no requiere de la división de los datos. Además de eso, permite el examen repetitivo de los datos, proporcionando así una imagen clara de los cambios. Además, no contiene métricas sofisticadas para la evaluación; lo mejor que puede hacer es la reducción máxima (picos negativos extremos), incluida la media y la desviación estándar de los resultados de la simulación. El uso de métodos de simulación está muy extendido en las finanzas para comprender el riesgo sin exponerse.
Este modelo es adecuado para los formuladores de políticas, ya que puede ayudarlos a tener claridad al considerar la incertidumbre en los eventos económicos. Puede ayudarlos a decidir cuándo diseñar y revisar políticas que impacten las actividades de endeudamiento. Es muy intuitivo y se aplica a una variable en múltiples pruebas para generar resultados (una simulación).
Antes de continuar, asegúrese de tener instalada la biblioteca pandas_montecarlo en su entorno. Para instalar la biblioteca pandas_montecarlo en un entorno Python, use el siguiente código:
import warnings
warnings.filterwarnings('ignore')
# !pip install pandas-montecarlo
Del mismo modo, para instalar la biblioteca en un entorno Conda, utilice el siguiente código:
# conda install pandas_montecarlo
Contexto
La presente entrada muestra cómo predecir la inflación y los precios al consumidor de Gran Bretaña (como porcentaje anual) a través de múltiples ensayos aplicando el modelo de Monte Carlo. La Tabla 1 describe el indicador macroeconómico que será investigado.
Tabla 1. Indicador macroeconómico de Gran Bretaña
| Identificación | Indicador |
|---|---|
| FP.IPC.TOTL.ZG | Inflación y precios al consumidor (como porcentaje anual) |
El siguiente código extrae los datos de inflación y precios al consumidor de Gran Bretaña:
import wbdata
# Inflación y precios al consumidor de Gran Bretaña:
pais = ["GBR"]
indicador = {"FP.CPI.TOTL.ZG": "ipc_inflacion"}
df = wbdata.get_dataframe(indicador,
country = pais,
convert_date = True)
# Inflación y precios al consumidor de Gran Bretaña:
df.head()
| ipc_inflacion | |
|---|---|
| date | |
| 2021-01-01 | 2.518371 |
| 2020-01-01 | 0.989487 |
| 2019-01-01 | 1.738105 |
| 2018-01-01 | 2.292840 |
| 2017-01-01 | 2.557756 |
El siguiente código sustituye los valores faltantes con el valor promedio:
# Sustituye los valores perdidos por el valor promedio:
df["ipc_inflacion"] = df["ipc_inflacion"].fillna(df["ipc_inflacion"].mean())
Estadísticas descriptivas
El siguiente código calcula la inflación y los precios al consumidor de Gran Bretaña desde 1960 hasta 2020. De igual forma, se muestra un gráfico de estos datos:
import matplotlib.pyplot as plt
# Gráfica lineal de inflación y precios al consumidor de Gran Bretaña:
df["ipc_inflacion"].plot(kind = "line",
color = "green",
lw = 4)
plt.title("Inflación de Gran Bretaña, precios al consumidor (% anual)")
plt.ylabel("Inflación, precios al consumidor (% anual)")
plt.xlabel("Fecha")
plt.legend(loc = "best")
# Gráfico lineal de inflación y precios al consumidor de Gran Bretaña:
plt.show()

El gráfico anterior muestra un fuerte aumento de la inflación en los primeros años de 1970 (cuando la inflación de Gran Bretaña llegó a $24.207288$). Sin embargo, a mediados de la década de 1970, hubo una disminución notable. En 2015, la inflación de Gran Bretaña alcanzó un mínimo de $0.368047$.
El siguiente código calcula la distribución de la inflación y los precios al consumidor de Gran Bretaña. Asimismo, se muestra un gráfico de estos datos:
import matplotlib.pyplot as plt
# Distribución de inflación y precios al consumidor de Gran Bretaña:
df["ipc_inflacion"].plot(kind = "hist",
color = "green")
plt.title("Inflación de Gran Bretaña, precios al consumidor (% anual)")
plt.ylabel("Inflación, precios al consumidor (% anual)")
plt.xlabel("Fecha")
plt.legend(loc = "best")
# Distribución de la inflación y los precios al consumidor de Gran Bretaña:
plt.show()

El gráfico muestra que estos datos tienen un sesgo positivo. Se debe tener en cuenta que el modelo no requiere ninguna suposición con respecto a la estructura de los datos (el modelo asume que la variable es desconocida).
El siguiente código genera una tabla que brinda más detalles sobre la tendencia central y la dispersión de los datos relacionados con la inflación y los precios al consumidor de Gran Bretaña. En este caso, resulta de especial interés la tabla resultante:
# Resumen descriptivo de la inflación y los precios al consumidor de Gran Bretaña:
df.describe()
| ipc_inflacion | |
|---|---|
| count | 62.000000 |
| mean | 5.048702 |
| std | 4.829198 |
| min | 0.368047 |
| 25% | 2.117138 |
| 50% | 3.354598 |
| 75% | 5.993608 |
| max | 24.207288 |
La tabla del resumen descriptivo muestra que el valor medio de la inflación y los precios al consumidor de Gran Bretaña es $5.048702%$. También muestra que los puntos de datos independientes se desvían del valor medio en $4.829198$. El valor mínimo es $0.368047$ y el máximo es $24.207288$.
Desarrollo del modelo de simulación de Monte Carlo
El beneficio de aplicar simuladores es que son computacionalmente económicos: Entrenan muestras grandes más rápido. El siguiente código desarrolla el modelo de simulación de Monte Carlo utilizando la biblioteca pandas_montecarlo:
import pandas_montecarlo
# El modelo de Montecarlo sobre la inflación y los precios al consumidor de Gran Bretaña:
mc = df['ipc_inflacion'].montecarlo(sims = 10, bust = -0.1, goal = 1)
En el código se especifica bust = -0.1 , que es una probabilidad de $0.1$ de quiebra, y goal = 1, que es la probabilidad de alcanzar una meta del $100%$.
Resultados de la simulación
El siguiente gráfico muestra los valores de producción pronosticados de la inflación y los precios al consumidor de Gran Bretaña en varios casos, según el código que se muestra a continuación:
# Inflación y precios al consumidor de Gran Bretaña: resultados de la simulación de Monte Carlo:
mc.plot(title = "Inflación de Gran Bretaña, resultados de la simulación de precios al consumidor (% anual)")

El gráfico muestra los resultados de la simulación de Monte Carlo sobre la inflación y los precios al consumidor de Gran Bretaña. Ahora bien, se puede notar que la inflación y los precios al consumidor de Gran Bretaña aumentan en múltiples ensayos.
Distribución de la simulación
La siguiente tabla describe la tendencia central y la dispersión de los resultados de la simulación de la inflación y los precios al consumidor de Gran Bretaña basados en el siguiente código:
import pandas as pd
# Inflación y precios al consumidor de Gran Bretaña: Resumen descriptivo de la simulación de Monte Carlo:
resultados_simulación = pd.DataFrame(mc.data)
resultados_simulación.describe()
| original | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
|---|---|---|---|---|---|---|---|---|---|---|
| count | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 | 62.000000 |
| mean | 5.048702 | 5.048702 | 5.048702 | 5.048702 | 5.048702 | 5.048702 | 5.048702 | 5.048702 | 5.048702 | 5.048702 |
| std | 4.829198 | 4.829198 | 4.829198 | 4.829198 | 4.829198 | 4.829198 | 4.829198 | 4.829198 | 4.829198 | 4.829198 |
| min | 0.368047 | 0.368047 | 0.368047 | 0.368047 | 0.368047 | 0.368047 | 0.368047 | 0.368047 | 0.368047 | 0.368047 |
| 25% | 2.117138 | 2.117138 | 2.117138 | 2.117138 | 2.117138 | 2.117138 | 2.117138 | 2.117138 | 2.117138 | 2.117138 |
| 50% | 3.354598 | 3.354598 | 3.354598 | 3.354598 | 3.354598 | 3.354598 | 3.354598 | 3.354598 | 3.354598 | 3.354598 |
| 75% | 5.993608 | 5.993608 | 5.993608 | 5.993608 | 5.993608 | 5.993608 | 5.993608 | 5.993608 | 5.993608 | 5.993608 |
| max | 24.207288 | 24.207288 | 24.207288 | 24.207288 | 24.207288 | 24.207288 | 24.207288 | 24.207288 | 24.207288 | 24.207288 |
La tabla anterior muestra un resumen descriptivo de la simulación de Monte Carlo sobre la inflación y los precios al consumidor de Gran Bretaña.
Para una mejor comprensión de la distribución de los resultados de la simulación de inflación y precios al consumidor de Gran Bretaña, se procede a relizar una serie de gráficos. El siguiente código muestra los primeros cinco resultados de la simulación.
# Distribución de los primeros cinco resultados de la simulación (inflación y precios al consumidor de Gran Bretaña):
resultados_simulación.iloc[::, 1:6].plot(kind = "box",
color = "green")
plt.title ("Distribución de los resultados de las primeras cinco simulaciones")
plt.ylabel("Valores")
# Distribución de los resultados de las primeras cinco simulaciones:
plt.show()

El gráfico muestra que todas las distribuciones de los resultados de la simulación son casi normales y existe un total de seis valores atípicos en cada distribución. A continuación, el siguiente código muestra los últimos cuatro resultados de la simulación:
# Distribución de los últimos cuatro resultados de la simulación (inflación y precios al consumidor de Gran Bretaña):
resultados_simulación.iloc[::, 6:10].plot(kind = "box",
color = "green")
plt.title("Distribución de los resultados de las últimas cuatro simulaciones")
plt.ylabel("Valores")
# Distribución de los resultados de las últimas cuatro simulaciones:
plt.show()

El gráfico muestra que los resultados de la simulación saturan el escalón inferior con una presencia visible de seis valores atípicos.
En conclusión, se deben sustituir los valores atípicos antes de desarrollar un modelo de simulación de Monte Carlo.
El siguiente código muestra una forma sencilla de recuperar las estadísticas de los resultados de la simulación de Monte Carlo, las cuales incluyen:
- La reducción máxima (
maxdd), que es la medida en que la inflación y el índice de precios al consumidor de Gran Bretaña caen desde su punto máximo antes de recuperarse. - La quiebra (
bust), que es la probabilidad de quiebra. - La meta (
goal), que es la probabilidad de alcanzar en un $100%$ la meta.
# Resultados de la prueba:
pd.DataFrame(pd.Series(mc.stats))
| 0 | |
|---|---|
| min | 3.130195e+02 |
| max | 3.130195e+02 |
| mean | 3.130195e+02 |
| median | 3.130195e+02 |
| std | 5.013118e-14 |
| maxdd | NaN |
| bust | 0.000000e+00 |
| goal | 1.000000e+00 |
popular post

El modelo AR de series temporales univariadas
Resumen: En esta entrada, descubrirá el modelo AR: El modelo autorregresivo.
Leer más
Evaluación de modelos para pronosticar
Resumen: Al desarrollar modelos de aprendizaje automático, generalmente se comparan varios modelos durante la fase de construcción.
Leer más
Modelos para pronosticar
Resumen: El pronóstico, traducido groseramente como la tarea de predecir el futuro, ha estado presente en la sociedad humana durante siglos.
Leer más