Nu Arunca Încă Geaca de Iarnă
În final, vei prognoza temperatura pentru următorii 30 de ani folosind un model ARMA(1,1), inclusiv benzile de încredere aferente estimării. Reține că estimarea driftului va avea un impact mult mai mare asupra prognozelor pe termen lung decât parametrii ARMA.
Anterior, ai determinat că datele de temperatură urmează un mers aleatoriu și ai aplicat prima diferențiere. În acest exercițiu, vei folosi modulul ARIMA pe datele de temperatură (înainte de diferențiere), ceea ce este echivalent cu aplicarea modulului ARMA pe variațiile de temperatură, urmată de calculul sumelor cumulative ale acestor variații pentru a obține prognoza temperaturii.
Deoarece temperaturile prezintă o tendință ascendentă în timp, va trebui să adaugi și o componentă de trend atunci când definești modelul ARIMA. În exercițiu, vei folosi un trend liniar în raport cu timpul, setând argumentul trend='t'. Poți încerca și alte modele de trend pentru a vedea cum se modifică prognozele. De exemplu, pentru un trend pătratic \(\small a+ bt + ct^2\), setează trend=[0,1,1], pentru a include atât termenul liniar \(\small bt\), cât și termenul pătratic \(\small ct^2\) în model.
Datele sunt preîncărcate într-un DataFrame numit temp_NY.
Acest exercițiu face parte din cursul
Analiza seriilor de timp în Python
Instrucțiuni pentru exercițiu
- Creează o instanță a clasei
ARIMAnumitămodpentru un model ARMA(1,1) integrat, adică un model ARIMA(1,1,1)- Parametrul
ddinorder(p,d,q)este unu, deoarece am aplicat o singură diferențiere - Antrenează
modfolosind metoda.fit()și salvează rezultatele în variabilares
- Parametrul
- Generează prognoza seriei folosind metoda
plot_predict()aplicată peres- Alege data de început
1872și data de sfârșit2046
- Alege data de început
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()