Mô hình SARIMA

Mô hình ARIMA với Python

James Fulton

Climate informatics researcher

Mô hình SARIMA

ARIMA theo mùa = SARIMA

  • Bậc không mùa vụ
    • p: bậc tự hồi quy
    • d: bậc sai phân
    • q: bậc trung bình trượt

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

  • Bậc mùa vụ
    • P: bậc tự hồi quy mùa vụ
    • D: bậc sai phân mùa vụ
    • Q: bậc trung bình trượt mùa vụ
    • S: số bước thời gian mỗi chu kỳ
Mô hình ARIMA với Python

Mô hình SARIMA

Mô hình ARIMA(2,0,1): $$y_t = a_1 y_{t-1} + a_2 y_{t-2} + m_1 \epsilon_{t-1} + \epsilon_t$$

Mô hình 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$$

Mô hình ARIMA với Python

Ước lượng mô hình 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()
Mô hình ARIMA với Python

Sai phân mùa vụ

Trừ giá trị chuỗi cách đây một mùa

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

# Take the seasonal difference
df_diff = df.diff(S)
Mô hình ARIMA với Python

Lấy sai phân cho mô hình SARIMA

Chuỗi thời gian

Mô hình ARIMA với Python

Lấy sai phân cho mô hình SARIMA

Sai phân bậc 1 của chuỗi thời gian

Mô hình ARIMA với Python

Lấy sai phân cho mô hình SARIMA

Sai phân bậc 1 và sai phân mùa vụ bậc 1 của chuỗi thời gian

Mô hình ARIMA với Python

Xác định p và q

Mô hình ARIMA với Python

Xác định P và Q

Mô hình ARIMA với Python

Vẽ ACF và PACF mùa vụ

# 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()
Mô hình ARIMA với Python

Hãy thực hành!

Mô hình ARIMA với Python

Preparing Video For Download...