Sarima:适合火车的子集有效,但不能适合整个火车

时间:2019-08-19 11:39:37

标签: python time-series forecasting training-data arima

我在Python中使用statsmodels.tsa.statespace.sarimax中的 SARIMAX
我有一个简单的一列能源消耗数据集,包含27679行。频率为小时

借助Gridsearch和Hyperopt,我可以进行超参数优化。
为此,我将数据集 NO NOT RANDOMLY (我使用shuffle = False)拆分为 X_train X_test 数据集,然后拆分 X_train 进入 X_train_subset X_valid 集,这样我就可以对X_valid集进行优化,除非最后我不使用X_test集

from sklearn.model_selection import train_test_split

# We want to forecast on 72 hours, 3 days
test_size = 72/len(result_data)

X_train, X_test = train_test_split(result_data, test_size=test_size, shuffle=False)
X_train_subset, X_valid = train_test_split(X_train, test_size=0.3, shuffle=False)

问题是,有时候,我得到了最佳的超参数,它是由优化产生的(拟合X_train_subset并通过X_valid计算指标),然后当我将模型与 X_train 上的这些超参数拟合时,它不合适,我得到了:

ValueError: Non-stationary starting autoregressive parameters found with `enforce_stationarity` set to True.

对于一个具有超参数组合的Sarima模型,要恢复,请执行以下操作:

  • 它适用于 X_train_subset
  • 它不适用于 X_train
  • X_train_subset是X_train的 70%
  • X_train和X_train_subset都是平稳的(Dickey Fuller测试<10e-11)

有人知道我为什么会出现这种行为以及它对我的模型意味着什么吗?

0 个答案:

没有答案