我正在创建每周(7天)频率的xts对象,以用于预测。但是,即使frequency=7
在xts
调用中使用参数时,生成的xts对象的频率也为1。
这是一个随机数据的例子:
> values <- rnorm(364, 10)
> days <- seq.Date(from=as.Date("2014-01-01"), to=as.Date("2014-12-30"), by='days')
> x <- xts(values, order.by=days, frequency=7)
> frequency(x)
[1] 1
在使用上述代码后,我也尝试过frequency(x) <- 7
。但是,这会将类更改x
为onlyzooreg
和zoo
,丢失了xts
该类并弄乱了时间戳格式。
xts是否基于对数据的分析以某种方式自动选择频率?如果是这样,您如何覆盖它以设置特定频率以进行预测(在这种情况下,将季节性时间序列ets
从预测包传递到)?
我了解xts可能不允许没有意义的频率,但是带有每日时间戳记的7频率似乎很合逻辑。
由于连续日期相隔1,因此连续日期类日期的频率始终为1。使用ts或zooreg获得7的频率:
tt <- ts(values, frequency = 7)
library(zoo)
zr <- as.zooreg(tt)
# or
zr <- zooreg(values, frequency = 7)
这些将创建一个时间为1、1 + 1 / 7、1 + 2/7,...的系列
如果我们有一些zr的索引值
zrdates <- index(zr)[5:12]
我们可以zrdates
像这样恢复日期:
days[match(zrdates, index(zr))]
正如评论中指出的,xts不支持这种类型的系列。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句