SARIMAX模型超出样本预测

时间:2017-05-24 00:14:47

标签: python time-series linear-regression prediction statsmodels

我正在开发SARIMAX模型以预测python中的股票市场。我将数据分为训练和测试数据。在将我的模型拟合到训练数据之后,我的目标是预测测试数据(一步预测)

当我向模型中添加exogs时,它会返回非常准确的结果,但是,当我在没有exogs的情况下拟合模型时,我得到了一条直线。  我去了一些类似的问题,但我无法解决问题。 这是我的代码:

拟合模型

`mod1 = sm.tsa.statespace.SARIMAX(endog= ptrain,
                            exog = ftrain,
                            order=(1, 1, 0),
                            seasonal_order=(0, 0, 0, 12),
                            enforce_stationarity=False,
                            enforce_invertibility=False)
results1 = mod1.fit()`

超出样本预测

`prediction=results1.get_prediction(start=pd.to_datetime(ptrain.index[-1]),end=pd.to_datetime(ptest.index[-1]),exog= test)

` 这是我得到的情节[1]:https://i.stack.imgur.com/XDd6n.png

有关如何正确进行预测的任何想法吗?

1 个答案:

答案 0 :(得分:0)

由于您已将平稳性执行和可逆性强制执行设置为False,因此您可能会获得不可靠的预测。 你可以尝试通过尝试以下性质来搜索(p,d,q)和(P,D,Q)的最佳参数:

for ...:
  try:
    model = smt.SARIMAX(...)
    result = model.fit()
    ...
  except:
    continue