我已经在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不支持如此多的预测数据吗? 是否还有其他软件包可以帮助我获得如此大量数据的预测?
答案 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)