Prognoze cu un model AR
Pe lângă estimarea parametrilor unui model, așa cum ai făcut în exercițiul anterior, poți realiza și prognoze – atât în eșantion, cât și în afara eșantionului – folosind statsmodels. Prognoza în eșantion estimează următorul punct de date pe baza datelor disponibile până la acel moment, iar prognoza în afara eșantionului poate acoperi oricâte puncte de date din viitor. Poți reprezenta grafic datele prognozate cu ajutorul funcției plot_predict(), specificând punctul de start și cel de final al prognozei – acesta din urmă poate depăși sfârșitul setului de date cu oricâte puncte dorești.
Pentru datele simulate din DataFrame-ul simulated_data_1, cu \(\small \phi=0.9\), vei reprezenta grafic prognozele în afara eșantionului, împreună cu intervalele de încredere corespunzătoare.
Acest exercițiu face parte din cursul
Analiza seriilor de timp în Python
Instrucțiuni pentru exercițiu
- Importă clasa
ARIMAși funcțiaplot_predict - Creează o instanță a clasei
ARIMAnumitămod, folosind datele simulate din DataFrame-ulsimulated_data_1și ordinul (p,d,q) al modelului (în acest caz, pentru un AR(1)),order=(1,0,0) - Antrenează modelul
modfolosind metoda.fit()și salvează rezultatele într-un obiect numitres - Reprezintă grafic datele în eșantion începând cu punctul de date 950
- Reprezintă grafic prognozele în afara eșantionului și intervalele de încredere folosind funcția
plot_predict(), pornind de la sfârșitul datelor, adică de la punctul 1000, și terminând prognoza la punctul 1010
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()