分钟智能时间序列预测?

时间:2014-11-29 14:33:11

标签: r time-series forecasting

我已经在R工作了一个星期左右,这个网站在理解基础知识方面提供了很多帮助。
我正在为我的公司做一个明智的预测,
数据是这样的:

  

REFEE ENTRY_DATE
  1.00 01-01-2011 00:00:00
  2.00 01-01-2011 00:01:00
  3.00 01-01-2011 00:02:00
  4.00 01-01-2011 00:03:00
  5.00 01-01-2011 00:04:00
  6.00 01-01-2011 00:05:00
  7.00 01-01-2011 00:06:00
  8.00 01-01-2011 00:07:00
  9.00 01-01-2011 00:08:00
  10.00 01-01-2011 00:09:00
  ......等到2014年四年

大约超过 133921 * 12 样本。我已经尝试了所有预测代码,HoltWinters()forecast()以及所有其他预测方法....

问题是,每次我尝试这些功能时应用程序都会挂起; R不支持如此多的预测数据吗? 是否还有其他软件包可以帮助我获得如此大量数据的预测?

2 个答案:

答案 0 :(得分:0)

这实际上 是非常多的数据,至少对于R.你可以查看ets()包中的forecast。我喜欢推荐同一作者的this free online forecasting textbook

您当然可以考虑一下您的数据。你真的期望动态只能在这个层面看到,例如,每小时一次的模式?您是否实际需要您的预测每分钟一次,例如,是否有运营决策? (据我所知,即使短期电力预测也是在15分钟内完成 - 如果你实际上进入高频交易,你可能会有更短的时间段。)

如果是,您应该研究一下可以实际模拟多种季节性的特定方法。电力负荷预测可能是一个很好的起点,因为这些人确实处理了多种重叠的季节性模式。

如果不是,您可以考虑汇总数据,比如几天,然后预测汇总和分配,例如,使用几天内的历史比例分钟。这至少可以使预测减少数据问题。

答案 1 :(得分:0)

对于大型数据集,我建议使用R base中的predict()而不是forecast()。虽然forecast()提供了更多信息(predict()仅提供预测和标准错误),但使用rbenchmark表示predict()这两个函数的速度要快得多{/ p}}。

另外forecast()在其预测的ts对象的日期中删除了这个世纪,这很烦人......

正如Stephan Kosla所说,拥有如此精细的数据可能是一个问题。在执行预测之前,可以通过获取数据的每日/每周/每月平均值来找到加速。你可以使用apply函数,lubridate和一些聪明才智来做到这一点。我已经在下面展示了如何做到这一点:

library(lubridate)

# Create dataframe for AirPassengers dataset (frome base)
df <- data.frame(data=as.vector(AirPassengers),
                 date=as.Date((time(AirPassengers))),
                 year=year(as.Date((time(AirPassengers)))))

# Split by year, then take average
average.by.year <- unsplit(lapply(split(df$data,df$year),mean), #lapply takes the mean
                           df$year)