R语言提取时间序列的周期性成分应用EMD,小波滤波器,Baxter过滤器等

本文介绍了使用R语言从时间序列中提取商业周期的方法,包括线性去趋势、差分、Hodrick-Prescott滤波器、Baxter滤波器和小波滤波器。通过实例分析美国实际GDP季度数据,展示了各种滤波技术的效果和优缺点。

介绍

对商业周期的分析需要提取时间序列的周期性成分,该时间序列通常也受到诸如潜在趋势或噪声等其他因素的影响。本文介绍了一些在最近的文献中用于从给定系列中提取商业周期的方法。它基于Stock and Watson(1999)在“宏观经济学手册”中关于商业周期的章节。我还介绍了相对较新的方法,如小波滤波器或经验模式分解,这些方法未在手册中介绍。由于这篇文章的重点是在R中实现某些过滤技术,我不会涉及数学。相反,我将参考各自的文献。对于这些例子,我使用了美国实际GDP的季度数据,这是我直接从FRED获得的。

1

names(gdp) <- c("Time","GDP") # Rename variables

gdp[,"GDP"] <- log(gdp[,"GDP"]) # Take logs

为了直观地了解提取时间序列的周期性成分意味着什么,请查看下图中随时间变化的对数实际GDP的发展情况。

1

2

3

 

library(reshape2)

ggplot(gdp,aes(x=Time,y=GDP)) + geom_line(size=.5) + theme_classic() + labs(title="Log Real US GDP")

00_gdp

数据有明显的增长趋势,到目前为止似乎逐渐变小。此外,该系列似乎以一种或多或少的常规方式围绕这一趋势波动。该系列与趋势的偏差非常小,这种偏差经常发生,但也有相当大的偏差,这种偏差可能会持续几个后续时期。后者是与商业周期分析相关的波动。

时间趋于衰退

从一系列中排除趋势的第一种方法是在时间变量上回归感兴趣的变量并获得剩余值。这些在下图中绘制,其中线性趋势被移除。

1

2

3

4

  

# Plot

dat <- data.frame("Time"=gdp[,"Time"],"Linearly.Detrended"=time.detrend)

ggplot(dat,aes(x=Time,y=Lin

时间序列小波分析 时间序列(Time Series)是地学研究中经常遇到的问题。在时间序列研究中,时域和频域是常用的两种基本形式。其中,时域分析具有时间定位能力,但无法得到关于时间序列变化的更多信息;频域分析(如Fourier变换)虽具有准确的频率定位功能,但仅适合平稳时间序列分析。然而,地学中许多现象(如河川径流、地震波、暴雨、洪水等)随时间的变化往往受到多种因素的综合影响,大都属于非平稳序列,它们不但具有趋势性、周期性等特征,还存在随机性、突变性以及“多时间尺度”结构,具有多层次演变规律。对于这类非平稳时间序列的研究,通常需要某一频段对应的时间信息,或某一时段的频域信息。显然,时域分析和频域分析对此均无能为力。 20世纪80年代初,由Morlet提出的一种具有时-频多分辨功能的小波分析(Wavelet Analysis)为更好的研究时间序列问题提供了可能,它能清晰的揭示出隐藏在时间序列中的多种变化周期,充分反映系统在不同时间尺度中的变化趋势,并能对系统未来发展趋势进行定性估计。 目前,小波分析理论已在信号处理、图像压缩、模式识别、数值分析和大气科学等众多的非线性科学领域内得到了广泛的应。在时间序列研究中,小波分析主要用于时间序列的消噪和滤波,信息量系数和分形维数的计算,突变点的监测和周期成分的识别以及多时间尺度的分析等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值