Modelos SARIMA

Modelos ARIMA em Python

James Fulton

Climate informatics researcher

O modelo SARIMA

ARIMA sazonal = SARIMA

  • Ordens não sazonais
    • p: ordem autorregressiva
    • d: ordem de diferenciação
    • q: ordem de média móvel

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

  • Ordens sazonais
    • P: ordem autorregressiva sazonal
    • D: ordem de diferenciação sazonal
    • Q: ordem de média móvel sazonal
    • S: número de passos de tempo por ciclo
Modelos ARIMA em Python

O modelo SARIMA

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

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

Modelos ARIMA em Python

Ajustando um modelo SARIMA

# 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()
Modelos ARIMA em Python

Diferença sazonal

Subtraia o valor da série de uma estação atrás

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

# Fazer a diferença sazonal
df_diff = df.diff(S)
Modelos ARIMA em Python

Diferença para modelos SARIMA

Série temporal

Modelos ARIMA em Python

Diferença para modelos SARIMA

Primeira diferença da série temporal

Modelos ARIMA em Python

Diferença para modelos SARIMA

Primeira diferença e primeira diferença sazonal da série temporal

Modelos ARIMA em Python

Encontrando p e q

Modelos ARIMA em Python

Encontrando P e Q

Modelos ARIMA em Python

Plotando ACF e PACF sazonais

# 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()
Modelos ARIMA em Python

Vamos praticar!

Modelos ARIMA em Python

Preparing Video For Download...