ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează o instanță a clasei ARIMA numită mod pentru un model ARMA(1,1) integrat, adică un model ARIMA(1,1,1)
    • Parametrul d din order(p,d,q) este unu, deoarece am aplicat o singură diferențiere
    • Antrenează mod folosind metoda .fit() și salvează rezultatele în variabila res
  • Generează prognoza seriei folosind metoda plot_predict() aplicată pe res
    • Alege data de început 1872 și data de sfârșit 2046

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()
Editează și rulează codul