No tires todavía ese abrigo de invierno

Por último, pronosticarás la temperatura durante los próximos 30 años utilizando un modelo ARMA(1,1), incluyendo bandas de confianza en torno a esa estimación. Ten en cuenta que la estimación de la deriva tendrá un impacto mucho mayor en las previsiones a largo plazo que los parámetros ARMA.

Anteriormente, determinaste que los datos de temperatura siguen un camino aleatorio y estudiaste la primera diferenciación de los datos. En este ejercicio, utilizarás el módulo ARIMA en los datos de temperatura (antes de diferenciar), lo que es idéntico a utilizar el módulo ARMA en los cambios de temperatura, seguido de tomar las sumas acumuladas de estos cambios para obtener la previsión de temperatura.

Como las temperaturas tienden a subir con el tiempo, también tendrás que añadir un componente de tendencia cuando definas el modelo ARIMA. En el ejercicio, utilizarás una tendencia lineal con el tiempo estableciendo el argumento trend='t'. También puedes probar otros modelos de tendencia para ver cómo cambian las previsiones. Por ejemplo, para una tendencia cuadrática \(\small a+ bt + ct^2\), establece trend=[0,1,1], para incluir tanto un término lineal, \(\small bt\), como un término cuadrático, \(\small ct^2\), en el modelo.

Los datos se cargan previamente en un DataFrame llamado temp_NY.

Este ejercicio forma parte del curso

Análisis de Series Temporales en Python

Ver curso

Instrucciones de ejercicio

  • Crea una instancia de la clase ARIMA llamada mod para un modelo ARMA(1,1) integrado, o modelo ARIMA(1,1,1)
    • El d en order(p,d,q) es uno, ya que primero diferenciamos una vez
    • Ajusta mod utilizando el método .fit() y llama a los resultados res
  • Pronostica la serie utilizando el método plot_predict() en res
    • Elige como fecha de inicio 1872 y como fecha final 2046

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

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

# Forecast temperatures using an ARIMA(1,1,1) model
mod = ARIMA(temp_NY, trend='t', order=(1,1,1))
___ = ___.fit()

# Plot the original series and the forecasted series
fig, ax = plt.subplots()
temp_NY.plot(ax=ax)
plot_predict(___, start='1872', end='2046', ax=ax)
plt.show()