在R中读取每日数据

4
我正在尝试基于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的值应该是多少?


你能展示一下你的样本数据吗? - Jd Baba
数据如下:1.763 0.463 1.113 0.475 0.688 1.238 1.263 0.375 0.65 1.538 0.263 0.525 0.85 1.838 1.225 0.663 1.075 0.963 0.375 0.538 0.913 0.55 1.325 1.138 1.1 0.575 1.575 0.388 1.025 0.55 0.238 0.575 0.525 0.338 0.413 0.463 0.263 1.113 0.7 0.575 ......等等。 - SamRoy
1个回答

5

对于具有年度季节模式的每日数据,请使用frequency=365。但是,如果您想建模周模式,则需要frequency=7。如果您将每7个观测值相加以形成每周数据,则需要frequency=52

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

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)

非常感谢您的澄清。现在我对事情的理解更加清晰了,明天我一定会尝试运行这些代码。只有一个问题:为什么季节周期被视为365.25? - SamRoy
老实说,我不太理解7和365.25代表什么。 seasonal.periods=c(7,365.25)。在R msts中,"seasonal.periods"被定义为msts的季节周期向量。然而答案并没有被清晰地解释。 - Somum
一周有7天。一年平均有365.25天。 - Rob Hyndman

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