Prognostisering med en AR-modell
Förutom att skatta parametrarna i en modell, som du gjorde i förra övningen, kan du även göra prognoser – både in-sample och out-of-sample – med statsmodels. In-sample-prognosen förutsäger nästa datapunkt utifrån alla data fram till den punkten, medan out-of-sample-prognosen förutsäger valfritt antal datapunkter framåt i tiden. Du kan visualisera prognoserna med funktionen plot_predict(). Du anger en startpunkt och en slutpunkt, där slutpunkten kan ligga hur långt efter datamängdens slut som helst.
För de simulerade data i DataFrame simulated_data_1, med \(\small \phi=0.9\), ska du rita ut out-of-sample-prognoser samt konfidensintervall runt dessa.
Den här övningen är en del av kursen
Tidsserieanalys i Python
Övningsinstruktioner
- Importera klassen
ARIMAoch funktionenplot_predict - Skapa en instans av klassen
ARIMAsom du kallarmod, med de simulerade data i DataFramesimulated_data_1och modellordningen (p,d,q) – i det här fallet för en AR(1):order=(1,0,0) - Anpassa modellen
modmed metoden.fit()och spara resultatet i ett resultatobjekt som du kallarres - Rita in-sample-data med start från datapunkt 950
- Rita out-of-sample-prognoser och konfidensintervall med funktionen
plot_predict(), med start vid datamängdens slut vid den 1 000:e punkten och med prognosen avslutad vid punkt 1 010
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()