Statsmodels содержит SARIMAX для анализа сезонных временных рядов. При попытке реализовать метод меня смущает отсутствие терминов разности/интеграции, отображаемых в сводке. Например, это видно на примере в самой документации . Где мне найти коэффициент, соответствующий d
-параметру? Я вижу только AR-коэффициент и MA-коэффициент.
Ниже пример того, что я имею в виду. Я ожидал чего-то, где я добавил ???
SARIMAX Results
=============================================================================================
Dep. Variable: Value No. Observations: 1680
Model: SARIMAX(2, 2, 2)x(1, 1, [1], 168) Log Likelihood 3705.949
Date: Tue, 15 Dec 2020 AIC -7397.898
Time: 17:08:28 BIC -7361.500
Sample: 0 HQIC -7384.261
- 1680
Covariance Type: opg
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
ar.L1 -0.6993 0.609 -1.149 0.251 -1.893 0.494
ar.L2 0.0913 0.058 1.570 0.116 -0.023 0.205
in.L1 = ???
in.L2 = ???
ma.L1 -0.1994 0.685 -0.291 0.771 -1.542 1.144
ma.L2 -0.8003 0.654 -1.224 0.221 -2.081 0.481
ar.S.L168 -0.1656 0.029 -5.779 0.000 -0.222 -0.109
in.S.L168 = ???
ma.S.L168 -0.6969 0.031 -22.498 0.000 -0.758 -0.636
sigma2 0.0002 6.32e-05 3.298 0.001 8.45e-05 0.000
===================================================================================
Ljung-Box (L1) (Q): 0.05 Jarque-Bera (JB): 23.49
Prob(Q): 0.82 Prob(JB): 0.00
Heteroskedasticity (H): 0.87 Skew: 0.09
Prob(H) (two-sided): 0.13 Kurtosis: 3.63
===================================================================================
Warnings:
[1] Covariance matrix calculated using the outer product of gradients (complex-step).
Backend GTK3Agg is interactive backend. Turning interactive mode on.
Это часть модели, доступ к которой можно получить с помощью res.model
, а затем либо order
, либо seasonal_order
.
import statsmodels.tsa.api as tsa
import numpy as np
gen = np.random.default_rng()
mod = tsa.SARIMAX(gen.standard_normal(1000),order=(2,1,1),seasonal_order=(1,1,1,12))
res = mod.fit()
print(res.model.order)
print(res.model.seasonal_order)
print(f"The differencing order (d) is {res.model.order[1]}")
print(f"The seasonal differencing order (D) is {res.model.seasonal_order[1]}")
print(f"The seasonal period {res.model.seasonal_order[-1]}")
который выводит
The differencing order (d) is 1
The seasonal differencing order (D) is 1
The seasonal period 12
Я думаю, что суть проблемы может заключаться в моей неправильной интерпретации модели SARIMA. Спасибо за ваши усилия в любом случае
Я думаю ты прав. d и D являются такими же параметрами, как ордера AR и MA, и не оцениваются. У них нет коэффициентов, которые оцениваются. Когда вы устанавливаете d или D на что-то большее нуля, вы фактически добавляете дополнительные условия AR с фиксированными параметрами 1 (как в (1-L) для несезонной разницы).
Спасибо за Ваш ответ. Однако я ищу коэффициенты, присвоенные разным терминам. Я отредактировал свой вопрос для ясности.