温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
杨冬: (重庆大学)
E-Mail: yang.dong@cqu.edu.cn
Note: 本文主要内容来自如下论文,有兴趣的小伙伴可以详读原文:
[Source]: Ghysels E, Kvedaras V, Zemlys V. Mixed Frequency Data Sampling Regression Models: The R Package midasr[J]. Journal of Statistical Software, 2016, 72(4). -PDF-
MIDAS 是「Mixed Frequency Data Sampling Regression Models」的简称,有多个对应的中文名称,如「混频抽样回归」、「混频抽样方法」、「混频回归」等。
基于混频数据建立模型的方法,充分利用原始数据本身包含的信息来构建数据模型。在传统的宏观计量模型中,数据存在不同频率,一般需要通过运用汇总或内插方法将混频频率数据统一为相同频率数据,然后以处理之后的相同频率数据应用于宏观经济模型。这种方法建立的模型由于人为的数据累加或内插会引起的原始数据内含的信息量增加和丢失。 相关学者提出直接使用混频数据来构建混频数据模型,这种方式建立的模型充分利用高频数据中的信息,避免了由于数据处理过程中人为处理而导致的数据信息虚增与丢失,在一定程度上可以提高宏观模型估计有效性和预测的准确性。 (摘自:混频 MIDAS 模型在宏观经济研究领域应用评述,-Link-)。
自 Ghysels et al. (2002) 提出 MIDAS 模型以来,由于其处理混频数据的便利性而被广泛应用于金融波动率和宏观经济预测等领域。本文将从如下三个方面对如何基于 R 语言的 MIDAS 模型在宏观经济预测方面的应用做简要的介绍。
假定{
上述模型设定形式可采用通常的时间序列回归或贝叶斯方法进行估计。但随着模型中滞后阶数的增加,待估参数
通过函数化约束可以大大减少待估参数个数,从
由图 1 结果可知,随着样本容量的增加,即使不正确的约束也表现出了较为理想的效果。
更为常见的,上述 MIDAS 模型是以一个紧集的形式表述:
其中,
上述紧集的表述形式可以直接采用 OLS 估计而无需对参数进行约束,因而该模型也被Foroni, et al. (2015)称为无约束的 MIDAS(U-MIDAS)模型。对于存在约束的 MIDAS(R-MIDAS)模型,我们可以采用 NLS 估计:
其中,有约束参数的滞后分布多项式定义为如下形式:
R 中用于建立 MIDAS 模型的程序包名为midasr,在使用该模型前,我们需要对该程序包进行安装
install.packages("midasr")
我们使用该程序包中含有的数据对美国的季度 GDP 预测为例,其预测方程形式如下:
其中,
# input data
data("USqgdp", package = "midasr")
data("USpayems", package = "midasr")
# define the date
y <- window(USqgdp, end = c(2011, 2))
x <- window(USpayems, end = c(2011, 7))
# take log difference
yg <- diff(log(y)) * 100
xg <- diff(log(x)) * 100
# fill the missing value
nx <- ts(c(NA, xg, NA, NA), start = start(x), frequency = 12)
ny <- ts(c(rep(NA, 33), yg, NA), start = start(x), frequency = 4)
上面程序的最后两行是为了保证样本量相对应。进一步地,我们来看一下调整后的数据格式
# check the data
head(nx,9)
Jan Feb Mar Apr May Jun Jul Aug Sep
1939 NA 0.5930978 0.5929035 -0.6161612 0.6821896 0.6644543 -0.2724842 0.7989303 1.1962214
> head(ny,36)
Qtr1 Qtr2 Qtr3 Qtr4
1939 NA NA NA NA
1940 NA NA NA NA
1941 NA NA NA NA
1942 NA NA NA NA
1943 NA NA NA NA
1944 NA NA NA NA
1945 NA NA NA NA
1946 NA NA NA NA
1947 NA 1.307742 1.531053 3.997397
由上述数据格式可知,MIDAS 模型需要解释变量和被解释变量对应时期的样本均需列入,没有的观测可用NA代替。经过处理后的时间序列图如下所示
与Ghysels(2013)设定形式一致,我们限制估计样本时间从 1985 年第一季度至 2009 年第一季度,并分别采用有约束的Beta分布多项式 MIDAS 模型、有约束的非零Beta分布多项式 MIDAS 模型和 U-MIDAS 模型进行建模。
xx <- window(nx, start = c(1985, 1), end = c(2009, 3))
yy <- window(ny, start = c(1985, 1), end = c(2009, 1))
beta0 <- midas_r(yy ~ mls(yy, 1, 1) + mls(xx, 3:11, 3, nbeta), start = list(xx = c(1.7, 1, 5)))
coef(beta0)
(Intercept) yy xx1 xx2 xx3
0.8315274 0.1058910 2.5887103 1.0201202 13.6867809
betan <- midas_r(yy ~ mls(yy, 1, 1) + mls(xx, 3:11, 3, nbetaMT),
+ start = list(xx = c(2, 1, 5, 0)))
coef(betan)
(Intercept) yy xx1 xx2 xx3 xx4
0.93778705 0.06748141 2.26970646 0.98659174 1.49616336 -0.09184983
um <- midas_r(yy ~ mls(yy, 1, 1) + mls(xx, 3:11, 3), start = NULL)
coef(um)
(Intercept) yy xx1 xx2 xx3 xx4
0.92989757 0.08358393 2.00047205 0.88134597 0.42964662 -0.17596814
xx5 xx6 xx7 xx8 xx9
0.28351010 1.16285271 -0.53081967 -0.73391876 -1.18732001
基于这三个模型,我们可以利用 2009 年二季度至 2011 年二季度数据对预测表现进行评价。
fulldata <- list(xx = window(nx, start = c(1985, 1), end = c(2011, 6)), yy = window(ny, start = c(1985, 1), end = c(2011, 2)))
insample <- 1:length(yy)
outsample <- (1:length(fulldata$yy))[-insample]
avgf <- average_forecast(list(beta0, betan, um), data = fulldata, insample = insample, outsample = outsample)
sqrt(avgf$accuracy$individual$MSE.out.of.sample)
[1] 0.5361953 0.4766972 0.4457144
由上述结果可知,U-MIDAS 模型具有最小的样本外 RMSE 结果,为 0.4457144。
连享会-直播课 上线了!
http://lianxh.duanshu.com
免费公开课:
直击面板数据模型 - 连玉君,时长:1 小时 40 分钟 Stata 33 讲 - 连玉君, 每讲 15 分钟. 部分直播课 课程资料下载 (PPT,dofiles 等)
支持回看,所有课程可以随时购买观看。
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 ⭐ | DSGE, 因果推断, 空间计量等 | |
⭕ Stata 数据清洗 | 游万海 | 直播, 2 小时,已上线 |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2 小时] |
Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会学习群-常见问题解答汇总:
✨ https://gitee.com/arlionn/WD