原文链接:http://tecdat.cn/?p=9350

原文出处:拓端数据部落公众号


经济工夫序列的剖析通常须要提取其周期性成分。这篇文章介绍了一些办法,可用于将工夫序列合成为它们的不同局部。它基于《宏观经济学手册》中Stock和Watson(1999)对于商业周期的章节,但也介绍了一些较新的办法,例如汉密尔顿(2018)代替HP滤波器,小波滤波和_教训模态合成_。

数据

我应用从1970Q1到2016Q4的美国对数理论GDP的季度数据来阐明不同的办法。工夫序列是通过  Quandl  及其相应的R包取得的。

#加载用于数据下载和转换的软件包library(dplyr)library(Quandl)library(tidyr)#下载数据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)) # 获取对数
library(ggplot2)ggplot(data, aes(x = date, y = lgdp)) +  geom_line() +  theme_classic()

数据有显著的增长趋势,到当初仿佛逐步变小。此外,仿佛或多或少有法则地围绕这一趋势稳定。与趋势之间存在绝对较长的长久偏差,能够将其视为周期性稳定。  

与线性趋势的偏差

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

# 增加趋势data <- data %>%  mutate(trend = 1:n())# 用常数和趋势估算模型time_detrend <- fitted(lm(lgdp ~ trend, data = data))names(time_detrend) <- NULL# 将系列增加到主数据框data <- data %>%  mutate(lin\_trend = time\_detrend)# 为图创立数据框temp <- data %>%  select(date, lgdp, lin_trend) %>%  gather(key = "Variable", value = "value", -date)# 画图ggplot(temp, aes(x = date, y = value, colour = Variable)) +

此办法绝对有争议,因为它假设存在恒定的线性工夫趋势。正如咱们在下面看到的,鉴于趋势的增长率随着工夫的推移继续降落,这不太可能。然而,依然能够采纳工夫趋势的其余函数模式(例如二次项)来阐明趋势的特殊性。该办法的另一个毛病是,它仅排除趋势,而不排除噪声,即序列中很小的稳定。

Hodrick-Prescott过滤器

Hodrick和Prescott(1981)开发了一个过滤器,将工夫序列分为趋势和周期性重量。与线性趋势相同,所谓的  _HP过滤器可_  估算趋势,该趋势会随工夫变动。钻研人员手动确定容许这种趋势扭转的水平,即平滑参数。

文献表明季度数据的值为1600。然而,也能够抉择更高的值。下图绘制了由HP过滤器取得的理论GDP周期性成分的值,并将其与线性趋势下的序列的值进行比拟。

只管HP过滤器在经济学中失去了宽泛的利用,但它们的某些性能也受到了宽泛的批评。

基于回归的HP过滤器

汉密尔顿(2018)还提出了另一种HP过滤器的办法。它能够归结为一个简略的回归模型,其中 工夫序列的_第_ h _个_前导依据工夫序列的最新p值进行回归。

Baxter King过滤器

Baxter和King(1994,1999)提出了一种过滤器,其产生的后果与HP过滤器十分类似。另外,它从工夫序列中去除了噪声,因而能够对周期重量进行平滑预计。该办法的一个绝对重大的毛病是,平滑因子导致序列开始和完结时观测值的损失。当样本量较小且以后经济情况令人关注时,这可能是一个问题。

小波滤波器

Yogo(2008)提出应用小波滤波器从工夫序列数据中提取业务周期。该办法的长处是该函数不仅容许提取序列的趋势,周期和噪声,而且还能够更明确地理解周期产生的时间段。

R中的办法实现也很简洁,然而在应用之前须要进行一些其余的数据转换。

 # 计算对数GDP的一阶差分data <- data %>%  mutate(dlgdp = lgdp - lag(lgdp, 1))#获取数据y <- na.omit(data$dlgdp)#运行过滤器wave_gdp <- mra(y, J = 5)# 创立用于绘制的数据框temp <- wave_gdp %>%  gather(key = "imf", # 绘制mra输入ggplot(temp, aes(x = date, y = value)) +  geom_line() +

data <- data %>%  select(date, bk, wave) %>%  gather(key = "Variablggplot(temp, aes(x = date, y = value, colour = Variable)) +  geom_hlin

教训模态合成(EMD)

Kozic和Sever(2014)提出了教训模态合成作为商业周期提取的另一种办法,正如Huang等人(2014年)提出的那样。(1998)。 emd 函数能够在_EMD_  包中找到,  并且须要一个不同的工夫序列,一个边界条件和一个指定的规定,在该点上迭代算法能够进行。滤波办法的后果与HP,BK和小波滤波绝对不同。

Chan(2017)

初始值

# X_gammax_gamma <- cbind(2:(tt +# H_2h2 <- diag(1, tt)diag(h2\[-1,  t)\]) <- 1h2h2 <- crossprod(h2)# H_phih_phi <- diag(1, tt)phi <- matrix(# sigma tau的逆s\_tau\_i <- 1 / .001#  sigma c的逆s\_c\_i <- 1 / .5# gammagamma <- t(rep(y\[1\], 2)) # 应该靠近该序列的第一个值

Gibbs 采样


最受欢迎的见解

1.在python中应用lstm和pytorch进行工夫序列预测

2.python中利用长短期记忆模型lstm进行工夫序列预测剖析

3.应用r语言进行工夫序列(arima,指数平滑)剖析

4.r语言多元copula-garch-模型工夫序列预测

5.r语言copulas和金融工夫序列案例

6.应用r语言随机稳定模型sv解决工夫序列中的随机稳定

7.r语言工夫序列tar阈值自回归模型

8.r语言k-shape工夫序列聚类办法对股票价格工夫序列聚类

9.python3用arima模型进行工夫序列预测