我最近开始涉及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 /期间,期间)给你一个长度期的组成部分,但我不确定为什么,并且我试图避免货物崇拜分析。咨询文档,这一点显然是“反向时间顺序的滤波器系数向量” - 只是不确定这意味着什么。
有人想指出我正确的方向吗?
答案 0 :(得分:3)
我建议你先看看Convolution是什么。如果您理解得很清楚,您应该很容易看到使用filter
来计算信号x
与rep(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