逐分钟时间序列预测?

3

我已经在使用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

对于大型数据集,我建议使用R基础中的predict()而不是forecast()。虽然forecast()提供了更多信息(predict()仅提供预测和标准误差),但使用rbenchmark比较这两个函数表明predict()速度更快。

此外,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)

0

这实际上是相当大量的数据,至少对于R来说是如此。你可以查看forecast包中的ets()函数。我喜欢推荐这些作者的免费在线预测教材

当然,你可以考虑你的数据。你真的期望只有在这个级别才能看到的动态变化吗?你真的需要按分钟为单位的预测,例如用于操作决策吗?(据我所知,即使是短期电力预测也是以15分钟为间隔进行的-如果你真的从事高频交易,你可能会使用更短的时间段。)

如果是的话,你应该考虑研究一些可以实际建模多种类型季节性的特定方法。电力负荷预测可能是一个好的起点,因为这些人处理的是多重叠加的季节性模式。

如果不是的话,你可以考虑对数据进行聚合,比如按天进行聚合,然后进行预测和解聚,例如使用历史上每天内的分钟比例。这至少会减轻预测的数据问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接