SARIMA-modellen

ARIMA-modellen in Python

James Fulton

Climate informatics researcher

Het SARIMA-model

Seasonal ARIMA = SARIMA

  • Niet-seizoensorden
    • p: autoregressieve orde
    • d: differencing-orde
    • q: moving-average-orde

SARIMA(p,d,q)(P,D,Q)$_S$

  • Seizoensorden
    • P: seizoens-autoregressieve orde
    • D: seizoens-differencing-orde
    • Q: seizoens-moving-average-orde
    • S: aantal tijdstappen per cyclus
ARIMA-modellen in Python

Het SARIMA-model

ARIMA(2,0,1)-model: $$y_t = a_1 y_{t-1} + a_2 y_{t-2} + m_1 \epsilon_{t-1} + \epsilon_t$$

SARIMA(0,0,0)(2,0,1)$_7$-model: $$y_t = a_7 y_{t-7} + a_{14} y_{t-14} + m_7 \epsilon_{t-7} + \epsilon_t$$

ARIMA-modellen in Python

Een SARIMA-model fitten

# Imports
statsmodels.tsa.statespace.sarimax import SARIMAX

# Instantiate model model = SARIMAX(df, order=(p,d,q), seasonal_order=(P,D,Q,S))
# Fit model results = model.fit()
ARIMA-modellen in Python

Seizoensverschillen

Trek de waarde van één seizoen geleden af

$$\Delta y_t = y_t - y_{t-S}$$

# Neem het seizoensverschil
df_diff = df.diff(S)
ARIMA-modellen in Python

Verschillen voor SARIMA-modellen

Tijdreeks

ARIMA-modellen in Python

Verschillen voor SARIMA-modellen

Eerste verschil van tijdreeks

ARIMA-modellen in Python

Verschillen voor SARIMA-modellen

Eerste en eerste seizoensverschil van tijdreeks

ARIMA-modellen in Python

p en q bepalen

ARIMA-modellen in Python

P en Q bepalen

ARIMA-modellen in Python

Seizoens-ACF en -PACF plotten

# Create figure
fig, (ax1, ax2) = plt.subplots(2,1)

# Plot seasonal ACF
plot_acf(df_diff,  lags=[12,24,36,48,60,72], ax=ax1)

# Plot seasonal PACF
plot_pacf(df_diff, lags=[12,24,36,48,60,72], ax=ax2)

plt.show()
ARIMA-modellen in Python

Laten we oefenen!

ARIMA-modellen in Python

Preparing Video For Download...