R中的时间序列分解

时间:2012-04-01 02:37:25

标签: r time-series

我最近开始涉及R中的一些时间序列分析,我对stats库中的过滤函数如何工作有点困惑。基本上,我已经看到它声称,对于每日时间序列,该过滤器可用于使用以下内容将系列分解为年度,季节性和每周组件:

x.year <- filter(x, rep(1/365, 365))
x.season <- filter(x, rep(1/90, 90))
x.weekly <- filter(x, rep(1/7, 7))

虽然我可以发现代表(1 /期间,期间)给你一个长度期的组成部分,但我不确定为什么,并且我试图避免货物崇拜分析。咨询文档,这一点显然是“反向时间顺序的滤波器系数向量” - 只是不确定这意味着什么。

有人想指出我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

我建议你先看看Convolution是什么。如果您理解得很清楚,您应该很容易看到使用filter来计算信号xrep(1/period, period)的卷积只不过是计算“移动平均线”或“滚动均值”你的信号,亲自看看:

x <- runif(10)
filter(x, rep(1/5, 5))
# Time Series:
# Start = 1 
# End = 10 
# Frequency = 1 
#  [1]        NA        NA 0.4400744 0.3643682 0.2677056 0.3703566 0.3449967
#  [8] 0.4975061        NA        NA

library(zoo)
rollmean(x, 5, na.pad = TRUE)
#  [1]        NA        NA 0.4400744 0.3643682 0.2677056 0.3703566 0.3449967
#  [8] 0.4975061        NA        NA