EmpezarEmpieza gratis

Pronóstico con un modelo AR

Además de estimar los parámetros de un modelo, como hiciste en el ejercicio anterior, también puedes realizar pronósticos, tanto dentro de la muestra como fuera de la muestra, usando statsmodels. El pronóstico dentro de la muestra es la predicción del siguiente punto usando los datos hasta ese momento, y el pronóstico fuera de la muestra predice cualquier número de puntos en el futuro. Puedes representar los datos pronosticados con la función plot_predict(). Solo tienes que indicar el punto inicial y el punto final del pronóstico, que puede estar cualquier número de observaciones después de que termine el conjunto de datos.

Para los datos simulados en el DataFrame simulated_data_1, con \(\small \phi=0.9\), vas a trazar pronósticos fuera de la muestra y los intervalos de confianza alrededor de esos pronósticos.

Este ejercicio forma parte del curso

Análisis de series temporales en Python

Ver curso

Instrucciones del ejercicio

  • Importa la clase ARIMA e importa también la función plot_predict
  • Crea una instancia de la clase ARIMA llamada mod usando los datos simulados del DataFrame simulated_data_1 y el orden (p,d,q) del modelo (en este caso, para un AR(1)), order=(1,0,0)
  • Ajusta el modelo mod con el método .fit() y guarda el resultado en un objeto de resultados llamado res
  • Dibuja los datos dentro de la muestra empezando en el punto 950
  • Dibuja los pronósticos fuera de la muestra y los intervalos de confianza con la función plot_predict(), comenzando donde terminan los datos, en el punto 1000, y finalizando el pronóstico en el punto 1010

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Import the ARIMA and plot_predict from statsmodels
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.graphics.tsaplots import plot_predict

# Forecast the first AR(1) model
mod = ARIMA(___, order=___)
res = mod.fit()

# Plot the data and the forecast
fig, ax = plt.subplots()
simulated_data_1.loc[950:].plot(ax=ax)
plot_predict(res, start=___, end=___, ax=ax)
plt.show()
Editar y ejecutar código