首页 > 其他 > 详细

Extracting Cyclical Components From Economic Time Series

时间:2019-12-10 13:58:41      阅读:100      评论:0      收藏:0      [点我收藏+]

经济时间序列的分析通常需要提取其周期性成分。这篇文章介绍了一些方法,可用于将时间序列分解为它们的不同部分。它基于《宏观经济学手册》中Stock和Watson(1999)关于商业周期的章节,但也介绍了一些较新的方法,例如汉密尔顿(2018)替代HP滤波器,小波滤波和经验模式分解。

数据

我使用从1970Q1到2016Q4的美国对数实际GDP的季度数据来说明不同的方法。时间序列是通过  Quandl  及其相应的R包获得的。原始系列可以从FRED数据库下载  

# Load packages for data download and transformation
library(dplyr)
library(Quandl)
library(tidyr)

# Download data
data <- Quandl("FRED/GDPC1", order = "asc",
               start_date = "1970-01-01", end_date = "2016-10-01")  %>%
  rename(date = Date,
         gdp = Value) %>%
  mutate(lgdp = log(gdp)) # Take logs
技术分享图片

要获得关于提取时间序列的周期性成分的含义的直观信息,请查看下图中对数实际GDP随时间的变化。

library(ggplot2)

ggplot(data, aes(x = date, y = lgdp)) +
  geom_line() +
  theme_classic() +
  labs(title = "Log real US GDP", x = "Quarter", y = "",
       caption = "Source: U.S. Bureau of Economic Analysis (GDPC1).\nRetrieved via Quandl.com.")
技术分享图片

技术分享图片技术分享图片

 

数据有明显的增长趋势,到现在似乎逐渐变小。此外,该系列似乎或多或少有规律地围绕这一趋势波动。与趋势之间存在相对较长的持久偏差,可以将其视为周期性波动。这些周期性成分的识别是经济学中的一个重要问题,因为它可能对经济政策产生严重影响。

与线性趋势的偏差

从系列中提取趋势的第一种方法是在常数和趋势项上回归目标变量并获得拟合值。这些在下图中绘制。



# Plot
ggplot(temp, aes(x = date, y = value, colour = Variable)) +
  geom_line() +
  theme_classic() +
  labs(title = "Residuals of a linear trend estimation",
       x = "Quarter", y = "")
技术分享图片

技术分享图片技术分享图片

 

此方法相对有争议,因为它假定存在恒定的线性时间趋势。正如我们在上面看到的,鉴于趋势的增长率随着时间的推移持续下降,这不太可能。但是,仍然可以采用时间趋势的其他函数形式(例如二次项)来说明趋势的特殊性。该方法的另一个缺点是,它仅排除趋势,而不排除噪声,即序列中很小的波动。

Hodrick-Prescott过滤器

Hodrick和Prescott(1981)开发了一个过滤器,将时间序列分为趋势和周期性分量。与线性趋势相反,所谓的  HP过滤器可  估算趋势,该趋势会随时间变化。研究人员手动确定允许这种趋势改变的程度,即平滑参数λλ。

该  hpfilter 函数包含在  mFilter  软件包中,并且需要时间序列和平滑参数。文献表明季度数据的值为1600。但是,也可以选择更高的值。下图绘制了由HP过滤器获得的实际GDP周期性成分的值,并将其与线性趋势下的序列的值进行比较。在系列开始时,两个系列的行为似乎非常相似。

# Plot
ggplot(temp, aes(x = date, y = value, colour = Variable)) +
  geom_hline(yintercept = 0, colour = "grey") +
  geom_line() +
  theme_classic() +
  labs(title = "HP filter",
       x = "Qurarter", y = "")
技术分享图片

技术分享图片技术分享图片

 

尽管HP过滤器在经济学中得到了广泛的应用,但它们的某些功能也受到了广泛的批评。见,例如,在一个很好的概述  勃鲁盖尔的博客文章  由热雷米·科恩,Setton和尤里Yatsynovich和  这里  由詹姆斯·汉密尔顿的工作文件版本批判。

基于回归的HP过滤器

汉密尔顿(2018)还提出了另一种HP过滤器的方法。它可以归结为一个简单的回归模型,其中 时间序列的 h 前导根据时间序列的最新p值进行回归。根据本文的建议,在以下示例中,我使用h = 8h = 8和p = 4p = 4。neverhpfilter Justin M. Shea 的软件包  包含函数yth_filter,该函数  需要xts对象作为输入。

 
技术分享图片

技术分享图片技术分享图片

 

百特King过滤器

Baxter和King(1994,1999)提出了一种过滤器,其产生的结果与HP过滤器非常相似。另外,它从时间序列中去除了噪声,因此可以对周期分量进行平滑估计。功能 bkfilter 也包含在mFilter软件包中。它需要级数,周期量的下限和上限(假设发生周期(pl和pu))和平滑因子nfix。文献(例如NBER,Stock和Watson(1999))建议商业周期持续6到32个月。这些值用于指定循环周期的下限和上限。BK过滤器的结果如下图所示。该方法的一个相对严重的缺点是,平滑因子导致序列开始和结束时观测值的损失。当样本量较小且当前经济状况令人关注时,这可能是一个问题。

 
技术分享图片

技术分享图片技术分享图片

 

小波滤波器

Yogo(2008)提出使用小波滤波器从时间序列数据中提取业务周期。该方法的优点是该函数不仅允许提取序列的趋势,周期和噪声,而且还可以更明确地了解周期发生的时间段。但是,由于技术只能捕获2的幂的周期,即2、4、8、16、32等,因此没有完全的自由。

R中的方法实现也很简洁,但是在使用之前需要进行一些其他的数据转换。Waveslim  软件包中包含一个有用的函数  ,称为  mra (“多分辨率分析”)。它需要时间序列和分解深度的不同版本。

 
技术分享图片

技术分享图片技术分享图片

 

该函数提供了多个序列,必须对其进行累加  cumsum 才能将其转换回水平数据。可能不足为奇的是,小波滤波器产生的结果与BK滤波器相似,因为两个周期周期的上限相等,而下限与BK滤波器中的66相比仅相差2-23 = 823 = 8。

 
技术分享图片

技术分享图片技术分享图片

 

经验模式分解(EMD)

Kozic和Sever(2014)提出了经验模式分解作为商业周期提取的另一种方法,正如Huang等人(2014年)提出的那样。(1998)。该  emd 函数可以在EMD  包中找到,  并且需要一个不同的时间序列,一个边界条件和一个指定的规则,在该点上迭代算法可以停止。此滤波方法的结果与HP,BK和小波滤波相对不同。评估是否使用此方法的合理性是每项研究的任务。

 
技术分享图片

技术分享图片技术分享图片

 

 
技术分享图片

技术分享图片技术分享图片

 

格兰特(AL)和陈(JCC)(2017)

以下代码遵循Chan等人的描述。(2019)。

先验

技术分享图片

绘制循环分量

mean_c <- apply(draws_c, 1, mean) / 100

# Add cyclical component to the main data frame
data <- data %>%
  mutate(grant = mean_c)

# Create data frame for the plot
temp <- data %>%
  select(date, hp, grant) %>%
  gather(key = "Variable", value = "value", -date) %>%
  filter(!is.na(value)) %>%
  mutate(Variable = factor(Variable,
                           levels = c("hp", "grant"),
                           labels = c("HP filter", "Grant & Chan (2017)")))

# Plot
ggplot(temp, aes(x = date, y = value, colour = Variable)) +
  geom_hline(yintercept = 0, colour = "grey") +
  geom_line() +
  theme_classic() +
  labs(title = "Grant & Chan (2017)",
       x = "Qurarter", y = "")
技术分享图片

技术分享图片

Extracting Cyclical Components From Economic Time Series

原文:https://www.cnblogs.com/tecdat/p/12016042.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!