Python 训练ARIMA预测趋势

Python 训练ARIMA预测趋势,python,arima,Python,Arima,我试图用ARIMA预测一个趋势。不幸的是,我得到的输出与训练和测试数据的预期行为相差甚远,这表明整个训练数据集似乎。。。没用 df = pd.read_csv('data.csv') df.index = pd.DatetimeIndex(df.index).to_period('D') #data from 1/1/2016 to 31/12/2018 train = df.loc[:'2018-12-31'] test = df.loc['2019-01-01':] model = au

我试图用ARIMA预测一个趋势。不幸的是,我得到的输出与训练和测试数据的预期行为相差甚远,这表明整个训练数据集似乎。。。没用

df = pd.read_csv('data.csv')
df.index = pd.DatetimeIndex(df.index).to_period('D')

#data from 1/1/2016 to 31/12/2018
train = df.loc[:'2018-12-31']
test = df.loc['2019-01-01':]

model = auto_arima(train, start_p=1, start_q=1,
                   max_p=3, max_q=3, m=7,
                   start_P=0, seasonal=True,
                   d=1, D=1, trace=True,
                   error_action='ignore',
                   suppress_warnings=True,
                   stepwise=True)

model.aic()
model.fit(train)
ffforecast = model.predict(n_periods=len(test))
ffforecast = pd.DataFrame(fforecast,
                               index=test.index,
                               columns=['prediction'])
pd.concat([test, fforecast], axis=1).plot()
pyplot.show()
完整代码:


csv:

您的模型使用了一组错误的参数。看起来您从不同的数据集中复制/粘贴了一个示例,但它不适合您

我想提出如下建议:

model = auto_arima(train, error_action='ignore', trace=True, suppress_warnings=True,seasonal=True, maxiter=10, m=7)

基于此输出,您可以在阅读参数并了解它们的功能后返回并细化参数。

这里的信息确实不够,您能否至少缩小问题的范围?好的,因此在垂直轴上,每天有大量的行程。为什么模型会预测一个负数?我的意思是,这不表明有什么不对劲吗?更重要的是曲线的奇怪形状和平均值的斜率。它似乎完全忽视了趋势蓝线的行为。对我来说,这个预测根本不适合这里。好吧,但是没有运行你的程序的能力,我不知道有多少人可以帮忙。我要发布我正在处理的.csv吗?这可能是一个很好的开始,与你的代码一起。谢谢,但我没有指定参数的确切值,只是开始值。也尝试过你的方法,它提高了输出一点,但我认为auto_arima更像是一种“置而不理”的风格,因此参数可以在训练过程中获得。你设置start和max,这不是一个好主意,除非你知道它的作用。