Začněte nyníZačněte zdarma

Zimní kabát zatím neodkládej

Nakonec vytvoříš předpověď teploty na příštích 30 let pomocí modelu ARMA(1,1), včetně intervalů spolehlivosti kolem tohoto odhadu. Měj na paměti, že odhad driftu bude mít na dlouhodobé předpovědi mnohem větší vliv než samotné parametry ARMA.

Dříve jsi zjistil/a, že teplotní data sledují náhodnou procházku, a provedl/a jsi první diferenciaci. V tomto cvičení použiješ modul ARIMA přímo na teplotní data (před diferencováním), což je ekvivalentní použití modulu ARMA na změny teploty a následnému kumulativnímu součtu těchto změn pro získání předpovědi teploty.

Protože teploty v čase rostou, budeš při definici modelu ARIMA muset přidat složku trendu. V tomto cvičení použiješ lineární trend v čase nastavením argumentu trend='t'. Můžeš také vyzkoušet jiné modely trendu a sledovat, jak se předpovědi změní. Například pro kvadratický trend \(\small a+ bt + ct^2\) nastav trend=[0,1,1], čímž do modelu zahrneš jak lineární člen \(\small bt\), tak kvadratický člen \(\small ct^2\).

Data jsou předem načtena v DataFrame s názvem temp_NY.

Toto cvičení je součástí kurzu

Analýza časových řad v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř instanci třídy ARIMA s názvem mod pro integrovaný model ARMA(1,1), tedy model ARIMA(1,1,1)
    • Parametr d v order(p,d,q) je roven jedné, protože jsme provedli první diferenciaci právě jednou
    • Přizpůsob model mod pomocí metody .fit() a výsledky pojmenuj res
  • Předpověz řadu pomocí metody plot_predict() zavolané na res
    • Jako počáteční datum zvol 1872 a jako koncové datum 2046

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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()
Upravit a spustit kód