【问题标题】:Training data set for auto.arima in RR中auto.arima的训练数据集
【发布时间】:2015-12-27 03:14:26
【问题描述】:

我有大约 10000 个时间序列。

我想使用 auto.arima 函数http://www.inside-r.org/packages/cran/forecast/docs/auto.arima

我想测试我的 auto.arima 模型对 10000 个时间序列的准确性。我推迟了 20% 的数据点(如果您看到 40 个样本中的样本,我将推迟 8 个),然后让 auto.arima 预测。 然后我可以将生成的 8 个值与实际的 8 个值进行比较。
但是有没有一种正式的方法来测试 ARIMA 模型的准确性?我的方法正确吗?

y=auto.arima(x)
plot(forecast(y,h=8))

示例 时间序列 1

0.0003748,0.0003929,0.0003653,0.0003557,0.0004463,0.000349,0.0003099,0.0003395,0.0003157,0.0002871,0.0002604,0.0002422,0.0001917,0.0002117,0.0002689

时间序列 2

0.0003977,0.0003481,0.0002413,0.0002069,0.0002127,0.0002108,0.0002003,0.0002174,0.0002098,0.0002069,0.0001955,0.0001926,0.0002108,0.0002146,0.0002079

【问题讨论】:

  • 我不清楚具体问题。 auto.arima 函数没有为您的某些时间序列返回有效模型的问题吗?或者您正在努力编写一个循环来自动适应您的 8000 个时间序列?
  • 是的,这就是问题所在。我需要为每个时间序列创建一个特定的模型吗?我现在已经明白,我必须从我的时间序列中推迟一些数据点,对每个时间序列使用 auto.arima,然后最后测试准确性。不知道有没有预建的函数来测试autoarima的准确性?
  • @SamThomas 我已经编辑了问题来解释。请看编辑。谢谢:)
  • 如果你想使用auto.arima,那么是的,你需要为时间序列拟合一个模型。请参阅帮助页面,其中指定了单变量时间序列。 ?accuracy 用于测试交叉验证。如果您想适应分层时间序列,另请参阅 hts 包。
  • 我可以为完整的 8000 时间序列提供一个模型吗?我需要为此使用 Arima() 函数吗?你的意思是说如果我想使用 auto.arima 那么我需要为每个时间序列拟合一个模型?

标签: r forecasting autoregressive-models


【解决方案1】:

在我看来,您的 Q 是关于比较预测准确性的不同指标,而不是 auto.arima()forecast() 的具体使用。如果是这样,那么可以使用许多指标。有关概述,请参阅

https://en.wikipedia.org/wiki/Forecasting#Forecasting_accuracy

他们每个人都有自己的支持者和反对者;例如,请参阅这篇论文:

http://robjhyndman.com/papers/mase.pdf

无论您使用什么准确度指标,您仍然需要能够证明为什么要保留 20% 的数据进行预测。

但是,如果您对不同的模型形式感兴趣,那么您也有一些选择。例如,如 cmets 中所建议的,

  1. 使用arima()(或一些等价物)将相同的单变量模型(指定先验)拟合到每个时间序列;
  2. 使用auto.arima() 为每个时间序列拟合一个(可能)不同的单变量模型;或
  3. 将多元模型拟合到所有时间序列。

如果您感兴趣的是#3,我建议您在此处使用MARSS pkg:

https://cran.r-project.org/web/packages/MARSS/index.html

这里还有用户指南:

https://cran.r-project.org/web/packages/MARSS/vignettes/UserGuide.pdf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 2015-04-21
    • 2018-05-03
    相关资源
    最近更新 更多