原文链接: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 = "Variabl
ggplot(temp, aes(x = date, y = value, colour = Variable)) +
geom_hlin
教训模态合成(EMD)
Kozic 和 Sever(2014)提出了教训模态合成作为商业周期提取的另一种办法,正如 Huang 等人(2014 年)提出的那样。(1998)。emd
函数能够在_EMD_ 包中找到,并且须要一个不同的工夫序列,一个边界条件和一个指定的规定,在该点上迭代算法能够进行。滤波办法的后果与 HP,BK 和小波滤波绝对不同。
Chan(2017)
初始值
# X_gamma
x_gamma <- cbind(2:(tt +
# H_2
h2 <- diag(1, tt)
diag(h2\[-1,
t)\]) <- 1
h2h2 <- crossprod(h2)
# H_phi
h_phi <- diag(1, tt)
phi <- matrix(
# sigma tau 的逆
s\_tau\_i <- 1 / .001
# sigma c 的逆
s\_c\_i <- 1 / .5
# gamma
gamma <- 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 模型进行工夫序列预测