【问题标题】:Any way to forecast time series data using ARIMA model in python?在 python 中使用 ARIMA 模型预测时间序列数据的任何方法?
【发布时间】:2020-12-06 23:52:24
【问题描述】:

我尝试使用 ARIMA 模型预测 target_price_index,这是预测时间序列的不错选择。我的数据是每月时间序列,我想从数据中预测target_price_index。我曾使用 scikit-learn 进行预测任务,但对在时间序列上使用 ARIMA 模型知之甚少。为此,我尝试如下:

我的尝试

这是我使用 example datareproducible 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,但仍然无法正确预测我的时间序列数据。有没有人有可能的想法?谢谢!

【问题讨论】:

  • 请提供完整的回溯
  • @MZ 实际上我知道出了什么问题,现在它工作正常。但对我来说,目前的尝试效率不高,无法获得有意义的预测输出。你有可能的想法吗?

标签: python time-series forecasting


【解决方案1】:

我发现代码有几个问题:

  1. csv 文件使用制表符作为分隔符:

    df = pd.read_csv("finaldf.csv",sep='\t')
    
  2. 当您实例化 ARIMA 模型时,第一个参数应该是您的目标:

    model = ARIMA(df.target_prc_index,order=(5,1,0))
    

【讨论】:

    猜你喜欢
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多