Aan de slagGa gratis aan de slag

Voorspellen met een MA-model

Net als bij AR-modellen ga je met MA-modellen zowel in-sample als out-of-sample voorspellen met de functie plot_predict() in statsmodels.

Voor de gesimuleerde reeks simulated_data_1 met \(\small \theta=-0.9\) maak je in-sample en out-of-sample voorspellingen. Een belangrijk verschil dat je ziet tussen out-of-sample voorspellingen met een MA(1)-model en een AR(1)-model is dat de MA(1)-voorspellingen verder dan één periode vooruit simpelweg het gemiddelde van de steekproef zijn.

Deze oefening maakt deel uit van de cursus

Tijdreeksanalyse in Python

Cursus bekijken

Oefeninstructies

  • Importeer de klasse ARIMA en importeer ook de functie plot_predict
  • Maak een instantie van de klasse ARIMA met de naam mod met de gesimuleerde data simulated_data_1 en de (p,d,q)-orde van het model (in dit geval, voor een MA(1)), order=(0,0,1)
  • Pas het model mod met de methode .fit() en sla het op in een resultatenobject met de naam res
  • Plot de in-sample data beginnend bij datapunt 950
  • Plot de out-of-sample voorspellingen van de data en betrouwbaarheidsintervallen met de functie plot_predict(), beginnend bij datapunt 950 en eindig de voorspelling bij punt 1010

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 MA(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()
Code bewerken en uitvoeren