问题描述
我尝试使用ARIMA模型预测target_price_index
,这是预测时间序列的不错选择。我的数据是每月的时间序列,我想根据数据预测target_price_index
。我曾与scikit-learn一起用于预测任务,但对在时间序列上使用ARIMA
模型的了解不多。为此,我尝试如下:
我的尝试
这是我使用的example data和reproducible time series data on gist
的可再现时间序列数据from statsmodels.tsa.arima_model import ARIMA
from matplotlib import pyplot
import pandas as pd
df = pd.read_csv("finaldf.csv",sep="\t")
model = ARIMA(df['target_price_index'],order=(5,1,0))
model_fit = model.fit(disp=0)
print(model_fit.summary())
# plot residual errors
residuals = DataFrame(model_fit.resid)
residuals.plot()
pyplot.show()
residuals.plot(kind='kde')
pyplot.show()
print(residuals.describe())
,但是上述尝试的输出并不令人满意,因为我看不到对时间序列数据进行预测的任何好处。谁能指出我有没有有效的管道或分析方法来获得有意义的预测结果?有什么建议吗?有什么想法吗?谢谢!
我还尝试了SO
中的this post,仍然无法正确预测我的时间序列数据。有人有可能的想法吗?谢谢!
解决方法
我发现代码有几个问题:
-
csv文件使用制表符作为分隔符:df = pd.read_csv(“ finaldf.csv”,sep ='\ t')
-
实例化ARIMA模型时,第一个参数应为目标:model = ARIMA(df.target_prc_index,order =(5,1,0))