分解商业周期时间序列:线性滤波器、HP滤波器、Baxter滤波器、Beveridge Nelson分解等去趋势法(一)https://developer.aliyun.com/article/1485945
Christiano-Fitzgerald滤波器去趋势数据
这个滤波器的性质与上面提供的非常相似。此外,产生与Baxter-King滤波器高度相似的结果。
plot.ts(gdp, ylab = "") plot.ts(cfcycle, ylab = "")
用Beveridge-Nelson分解法 "去趋势 "数据
为了将数据分解为随机趋势和平稳周期,我们可以采用Beveridge-Nelson分解法。当采用这种技术时,我们需要指定与平稳部分有关的滞后期的数量。在我下面的例子中,我假设有八个滞后期。
plot.ts(gdp, ylab = "") lines(bn.trend, col = "red") plot.ts(bn.cycle, ylab = "")
比较周期的不同衡量标准
然后,我们可以将所有这些结果结合在一张图上,考虑各自的相似性和差异。在这个例子中,我创建了一个时间序列ts.union,但是我也可以先绘制一个单一的序列,然后再使用lines命令在上面绘制连续的图。
ts.union(lin.cycle, hp.decom, bp.decom, cf.decom, bn.cycle) plot.ts(comb, ylab = "")
谱分解
在我们考虑使用谱技术之前,最好先清除当前环境中的所有变量,并关闭所有的图。下一步是确保你可以通过使用library命令来访问这些包中的程序。
library(tsm) library(TSA) library(mFilter)
使用谱技术进行分解。我们可以为三个时间序列变量生成数值,然后将它们组合成一个单一的变量。
2 * cos(2 * pi * t * w\[1\]) + 3 * sin(2 * pi * t * w\[1\]) # no.obs点上的6个周期的频率 4 * cos(2 * pi * t * w\[2\]) + 5 * sin(2 * pi * t * w\[2\]) #频率为10个周期的观察点 6 * cos(2 * pi * t * w\[3\]) + 7 * sin(2 * pi * t * w\[3\]) # 在没有观测点的情况下,频率为40个周期 y <- x1 + x2 + x3
为了观察这些变量,我们可以把它们绘制在一个单独的轴上。
par(mfrow = c(2, 2), mar = c(2.2, 2.2, 2, 1), cex = 0.8) plot(x1, type = "l", main = "x1") plot(x2, type = "l", main = "x2") plot(x3, type = "l", main = "x3") plot(y, type = "l", main = "y")
此后,我们可以使用周期图来考虑这些时间序列变量的每一个属性。
gram(y, main = "y", col = "red")
分解商业周期时间序列:线性滤波器、HP滤波器、Baxter滤波器、Beveridge Nelson分解等去趋势法(三)https://developer.aliyun.com/article/1485948