我试图根据 2010 年 1 月 1 日至 2011 年 12 月 31 日期间每一天的历史数据预测每天的用电量,即我总共有 365*2 = 730 个过去的数据点。我正在使用 ts 读取数据。我将其定义如下:

ts(consumption, start=1, frequency=365)

这样对吗?我主要怀疑“频率”:应该是365吗?或者我应该使用
ts(consumption, start=1,frequency=1)

对于另一种方法,如果我想每周合并数据(通过总结每 7 个观察值)然后想运行预测模型,我应该如何使用 ts 读取数据? frequency 的值应该是多少?

最佳答案

对于具有年度季节性模式的每日数据,请使用 frequency=365 。但是,如果您想对每周模式进行建模,则需要 frequency=7 。如果您每 7 个观察值求和以形成每周数据,那么您需要 frequency=52

当然,真正的季节周期不是整数,但大多数使用 ts 对象的函数都假设频率是整数。您可以使用 msts 包中的 forecast 函数更一般地处理这些数据。然后,您可以使用以下命令为每日数据指定每周和每年的季节性

daily <- msts(consumption, seasonal.periods=c(7,365.25))

和每周数据的年度季节性使用
weekly <- msts(wconsumption, seasonal=365.25/7)

其中 wconsumption 包含来自 7 个连续观察的每个块的总和。

可以使用 tbats 函数获取预测:
fit <- tbats(daily)
fc <- forecast(tbats)

关于在 R 中读取每日数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21949855/

10-12 17:23
查看更多