【发布时间】:2019-10-20 18:46:44
【问题描述】:
我正在尝试将每日时间序列分解为季节性、趋势和剩余部分。我们可以看一个 fpp2 包提供的谷歌股票的例子:
加载库
library(forecast)
library(lubridate)
library(zoo)
library(fpp2)
将包的时间序列转化为数值向量
google <- as.numeric(goog)
根据文档,谷歌股票从 2013 年 2 月 25 日到 2017 年 2 月 23 日
googZ <- zoo(google, seq(from = as.Date("2013-02-25"), to = as.Date("2017-02-23"), by = "days"))
decompose(googZ) 出错:时间序列的周期数不超过 2 个
decompose(googZ)
decompose(googZ) 出错:时间序列的周期数不超过 2 个
但是这个可以用,我不知道为什么 Google 不能用
autoplot(decompose(AirPassengers))
str(AirPassengers)
我不明白为什么会发生这种情况,因为我们清楚地知道并正确定义了我们的时间序列。 请注意,我使用了 zoo 包,因为 ts 无法处理每日时间序列。 非常感谢!
【问题讨论】:
-
frequency(googZ)和frequency(AirPassengers)之间的差异因此会出现错误。 -
您的
googZ错误,请改用googZ <- zoo(google, seq(from = as.Date("2013-02-25"), by = "days", length.out = length(google)))。 -
@RonakShah Okey 你是对的!我了解 ts 对象(1,4 或 12)的频率参数,但是您如何设法每天在 zoo() 中设置频率?我天真地尝试设置频率 = 365 但没有运气
标签: r time-series xts zoo