У меня есть набор временных рядов для одних и тех же метрик в разных местах, и я пытаюсь подогнать модель SARIMAX по их сумме (в совокупности), чтобы иметь одну модель, которую затем можно прогнозировать на сайте за сайтом основа (поскольку значения будут пропорционально ниже).
Однако это не работает, и модель прогнозирует очень высокие значения на уровне сайта (как если бы она подходила для перехвата из совокупного случая).
Есть ли что-то, чего мне не хватает в моем коде?
model = SARIMAX(data1, exog=data2, order=(1, 1, 2), seasonal_order=(1, 1, 1, 52))
model_fit = model.fit(disp=False)
print(f"Global: {model_fit.summary()}")
for site in sites:
# make prediction
newdfinner = df_site.loc[df_site.site == site, :].fillna(0).reset_index(drop=True)
exog2 = newdfinner.loc[
newdfinner["start_week_dt"] >= last_sunday, ["exog1", "exog2"]
].astype("float64")
yhat = model_fit.predict(
newdfinner[newdfinner["start_week_dt"] == last_sunday].index[0],
newdfinner.iloc[len(newdfinner) - 1, :].name,
exog=exog2,
)
Кроме того, я получаю несколько предупреждений в зависимости от используемого тренировочного диапазона (и метода подбора), например:
Warnings:
[1] Covariance matrix calculated using the outer product of gradients (complex-step).
[2] Covariance matrix is singular or near-singular, with condition number 1.19e+24. Standard errors may be unstable.
Могут ли они существенно повлиять на подгонку и как их можно смягчить?
Также, как я могу измерить, насколько нормально распределены члены ошибки?
Есть ли какие-либо из итоговые метрики дают меру этого?:
Ljung-Box (Q): 5.96 Jarque-Bera (JB): 0.87
Prob(Q): 0.31 Prob(JB): 0.65
Heteroskedasticity (H): 1.20 Skew: 0.66
Prob(H) (two-sided): 0.91 Kurtosis: 1.67