Prognozowanie za pomocą modelu AR
Oprócz estymacji parametrów modelu, którą wykonywałeś w poprzednim ćwiczeniu, możesz również tworzyć prognozy – zarówno wewnątrz próby (in-sample), jak i poza próbą (out-of-sample) – korzystając z biblioteki statsmodels. Prognoza in-sample dotyczy kolejnego punktu danych na podstawie danych do danego momentu, natomiast prognoza out-of-sample obejmuje dowolną liczbę punktów w przyszłości. Prognozowane dane możesz zwizualizować za pomocą funkcji plot_predict(). Wystarczy podać punkt startowy i końcowy prognozy – punkt końcowy może znajdować się dowolnie daleko poza zbiorem danych.
Dla danych symulowanych w ramce danych simulated_data_1, gdzie \(\small \phi=0.9\), narysuj prognozy out-of-sample wraz z przedziałami ufności.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj klasę
ARIMAoraz funkcjęplot_predict - Utwórz instancję klasy
ARIMAo nazwiemod, korzystając z danych symulowanych w ramce danychsimulated_data_1i rzędu (p,d,q) modelu (w tym przypadku dla AR(1)):order=(1,0,0) - Dopasuj model
modmetodą.fit()i zapisz wyniki w obiekcieres - Narysuj dane in-sample, zaczynając od punktu danych nr 950
- Narysuj prognozy out-of-sample wraz z przedziałami ufności za pomocą funkcji
plot_predict(), zaczynając tam, gdzie kończą się dane – od punktu 1000 – i kończąc prognozę w punkcie 1010
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()