R语言中基于混合数据抽样(MIDAS)回归的HAR-RV模型预测GDP增长

简介: R语言中基于混合数据抽样(MIDAS)回归的HAR-RV模型预测GDP增长

预测GDP增长

我们复制了Ghysels(2013)中提供的示例。我们进行了MIDAS回归分析,以预测季度GDP增长以及每月非农就业人数的增长。预测公式如下

其中yt是按季度季节性调整后的实际美国GDP的对数增长,x3t是月度总就业非农业工资的对数增长。

首先,我们加载数据并执行必要的转换。

R> y <- window(USqgdp, end = c(2011, 2))
R> x <- window(USpayems, end = c(2011, 7))
R> yg <- diff(log(y)) * 100
R> xg <- diff(log(x)) * 100

最后两行用于均衡样本大小,样本大小在原始数据中有所不同。我们只需在数据的开头和结尾添加其他NA值即可。数据的图形表示如图3所示。要指定midas_r函数的模型,我们以下等效形式重写它:

就像在Ghysels(2013)中一样,我们将估算样本限制在1985年第一季度到2009年第一季度之间。我们使用Beta多项式,非零Beta和U-MIDAS权重规格来评估模型。

R> coef(beta0)
(Intercept) yy xx1 xx2 xx3
0.8315274 0.1058910 2.5887103 1.0201202 13.6867809

R> coef(betan)
(Intercept) yy xx1 xx2 xx3 xx4
0.93778705 0.06748141 2.26970646 0.98659174 1.49616336 -0.09184983

(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年第2季度至2011年第2季度包含9个季度的样本数据评估这三个模型的预测性能。

R> fulldata <- list(xx = window(nx, start = c(1985, 1), end = c(2011, 6)),
+ yy = window(ny, start = c(1985, 1), end = c(2011, 2)))
R> insample <- 1:length(yy)
R> outsample <- (1:length(fulldata$yy))[-insample]
R> avgf <- average_forecast(list(beta0, betan, um), data = fulldata,
+ insample = insample, outsample = outsample)
R> sqrt(avgf$accuracy$individual$MSE.out.of.sample)
[1] 0.5361953 0.4766972 0.4457144

我们看到,MIDAS回归模型提供了最佳的样本外RMSE。


预测实际波动

作为另一个演示,我们使用midasr来预测每日实现的波动率。Corsi(2009)提出了一个简单的预测每日实际波动率的模型。实现波动率的异质自回归模型(HAR-RV)定义为

我们假设一周有5天,一个月有4周。该模型是MIDAS回归的特例:


为了进行经验论证,我们使用了由Heber,Lunde,Shephard和Sheppard(2009)提供的关于股票指数的已实现波动数据。我们基于5分钟的回报数据估算S&P500指数的年度实现波动率模型。

Parameters:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.83041 0.36437 2.279 0.022726 *
rv1 0.34066 0.04463 7.633 2.95e-14 ***
rv2 0.41135 0.06932 5.934 3.25e-09 ***
rv3 0.19317 0.05081 3.802 0.000146 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 5.563 on 3435 degrees of freedom

为了进行比较,我们还使用归一化指数Almon权重来估计模型

Parameters:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.837660 0.377536 2.219 0.0266 *
rv1 0.944719 0.027748 34.046 < 2e-16 ***
rv2 -0.768296 0.096120 -7.993 1.78e-15 ***
rv3 0.029084 0.005604 5.190 2.23e-07 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 5.535 on 3435 degrees of freedom

我们可以使用异方差性和自相关鲁棒权重规范测试hAhr_test来测试这些限制中哪些与数据兼容。

hAh restriction test (robust version)
data:
hAhr = 28.074, df = 17, p-value = 0.04408
 
hAh restriction test (robust version)
data:
hAhr = 19.271, df = 17, p-value = 0.3132

我们可以看到,与MIDAS回归模型中的HAR-RV隐含约束有关的零假设在0.05的显着性水平上被拒绝,而指数Almon滞后约束足够的零假设则不能被拒绝。

图说明了拟合的MIDAS回归系数和U-MIDAS回归系数及其相应的95%置信区间。对于指数Almon滞后指标,我们可以通过AIC或BIC选择滞后次数。

在这里,我们使用了两种优化方法来提高收敛性。将测试函数应用于每个候选模型。函数hAhr_test需要大量的计算时间,尤其是对于滞后数量较大的模型,因此我们仅在第二步进行计算,并且限制了滞后次数的选择。AIC选择模型有9个滞后:

Selected model with AIC = 21551.97
Based on restricted MIDAS regression model
The p-value for the null hypothesis of the test hAhr_test is 0.5531733
 Parameters:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.96102 0.36944 2.601 0.00933 **
rv1 0.93707 0.02729 34.337 < 2e-16 ***
rv2 -1.19233 0.19288 -6.182 7.08e-10 ***
rv3 0.09657 0.02190 4.411 1.06e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 5.524 on 3440 degrees of freedom

hAh_test的HAC再次不拒绝指数Almon滞后规范的原假设。我们可以使用具有1000个观测值窗口的滚动预测来研究两个模型的预测性能。为了进行比较,我们还计算了无限制AR(20)模型的预测。

Model MSE.out.of.sample MAPE.out.of.sample
1 rv ~  (rv, 1:20, 1) 10.82516 26.60201
2 rv ~  (rv, 1:20, 1, harstep) 10.45842 25.93013
3 rv ~  (rv, 1:9, 1, nealmon) 10.34797 25.90268
MASE.out.of.sample MSE.in.sample MAPE.in.sample MASE.in.sample
1 0.8199566 28.61602 21.56704 0.8333858
2 0.8019687 29.24989 21.59220 0.8367377
3 0.7945121 29.08284 21.81484 0.8401646

我们看到指数Almon滞后模型略胜于HAR-RV模型,并且两个模型均胜过AR(20)模型。


参考文献

Andreou E,Ghysels E,Kourtellos A(2010)。“具有混合采样频率的回归模型。” 计量经济学杂志,158,246–261。doi:10.1016 / j.jeconom.2010.01。004。

Andreou E,Ghysels E,Kourtellos A(2011)。“混合频率数据的预测。” 在MP Clements中,DF Hendry(编),《牛津经济预测手册》,第225–245页。

相关文章
|
1月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
2月前
|
存储 数据采集 数据处理
R语言数据变换:使用tidyr包进行高效数据整形的探索
【8月更文挑战第29天】`tidyr`包为R语言的数据整形提供了强大的工具。通过`pivot_longer()`、`pivot_wider()`、`separate()`和`unite()`等函数,我们可以轻松地将数据从一种格式转换为另一种格式,以满足不同的分析需求。掌握这些函数的使用,将大大提高我们处理和分析数据的效率。
|
1月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
|
1月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
1月前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
2月前
|
数据采集 机器学习/深度学习 数据挖掘
R语言数据清洗:高效处理缺失值与重复数据的策略
【8月更文挑战第29天】处理缺失值和重复数据是数据清洗中的基础而重要的步骤。在R语言中,我们拥有多种工具和方法来有效地应对这些问题。通过识别、删除或插补缺失值,以及删除重复数据,我们可以提高数据集的质量和可靠性,为后续的数据分析和建模工作打下坚实的基础。 需要注意的是,处理缺失值和重复数据时,我们应根据实际情况和数据特性选择合适的方法,并在处理过程中保持谨慎,以避免引入新的偏差或错误。
|
2月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
2月前
|
资源调度 数据挖掘
R语言回归分析:线性回归模型的构建与评估
【8月更文挑战第31天】线性回归模型是统计分析中一种重要且实用的工具,能够帮助我们理解和预测自变量与因变量之间的线性关系。在R语言中,我们可以轻松地构建和评估线性回归模型,从而对数据背后的关系进行深入的探索和分析。
|
2月前
|
数据处理
R语言数据合并:掌握`merge`与`dplyr`中`join`的巧妙技巧
【8月更文挑战第29天】如果你已经在使用`dplyr`进行数据处理,那么推荐使用`dplyr::join`进行数据合并,因为它与`dplyr`的其他函数(如`filter()`、`select()`、`mutate()`等)无缝集成,能够提供更加流畅和一致的数据处理体验。如果你的代码中尚未使用`dplyr`,但想要尝试,那么`dplyr::join`将是一个很好的起点。
|
5月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化

热门文章

最新文章