打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
R语言多变量广义正交GARCH(GO-GARCH)模型对股市高维波动率时间序列拟合预测

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

在多变量波动率预测中,我们有时会看到对少数主成分驱动的协方差矩阵建模,而不是完整的股票。使用这种因子波动率模型的优势是很多的。

首先,你不需要对每个股票单独建模,你可以处理流动性相当弱的股票。第二,因子波动率模型在计算成本低。第三,与指数加权模型相比,持久性参数(通常表示为

)不必在所有股票上都是一样的。你可以为每个因子指定一个不同的过程,这样协方差矩阵过程就会有更丰富的动态变化。 

但这里没有免费的午餐,代价是信息的损失。它是将协方差矩阵中的信息浓缩为少数几个因子的代价。这意味着因子波动率模型最适合于实际显示因子结构的数据。因子波动率模型并不是具有弱的截面依赖性的数据的最佳选择。在因子化的过程中会丢失太多的信息。

这篇文章,我们让主成分遵循 GARCH 过程。代数相当简单。

(1) 

(2)

 是一个对角矩阵,维数为选定的因子数。将此矩阵设置为对角线意味着主成分之间的协方差为零(所有非对角线元素都为零)。因此它们是正交的。当然,通过构造,主成分只是无条件正交的,但我们添加了约束\假设它们在每个时间点也是正交的。这确保 
 是一个有效的协方差矩阵。

的对角线 填充了因子的方差。这里我们使用阈值-GARCH 模型。

让我们实际操作,使用股票数据。前两个追踪短期和长期的债券收益,后两个追踪股票指数。每日收益矩阵 ret。

下面的代码分为两部分。首先,我们基于单个因子的阈值 GARCH 模型构建了我们自己的双因子正交 GARCH 模型。有几种不同的方法来估计参数(非线性最小二乘法、最大似然法和矩量法)。

#--------------
# 第一部分,自己的双因子正交 GARCH 模型
#--------------------

library(rugarch) # 单变量GARCH模型
# 我使用1000个观察的初始窗口,每增加一个时间点就重新估计模型的参数
wd <- 1000 #初始窗口
<- 2 #因素的数量
Uvofit <- matrix # 用一个矩阵来保存三种资产的波动率

for(in wd:T){
pc1 <- promp # 主成分分解
for (in 1:k){ # 对于每个因素,这里有相同的Garch过程(但可以是不同的)。
gjel = ugarchfit
}
# 不使用内置的 prcomp 函数获得 w。
<- matrix(eivales, nrow = l, ncol = k, byrow = F) * (eigos)
# 存储每个时间点上的协方差矩阵。
for(in 1:TT){
# 这是Gamma D_t gamma'。
otch\[i,,\] <- w %*% as.matrix) %*% t(w)
}

# 第二部分。使用广义正交GARCH(GO-GARCH)模型
#--------------

garchestby = "mm"
summary

# 让我们从这个模型中获得协方差
mH <- array
for(in 1:TT){
yH\[i,,\] <- faf@H\[\[i\]\] 。
}
# 绘制这两张图。因为我们用1000作为初始窗口,所以只画最近的观察值
# 改变k来表示最近的观测值。
<- TT - wd
teme <- tail(time,k) # 定义时间
# 用来绘制相关图的函数
plot(teime
abline
lines(tetime
# 让我们来看看所产生的相关关系。

我们看到的是对应于 6 个相关序列(SPY 与 TLT、SPY 与 QQQ 等)。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
多元统计分析介绍
因子分析
Eviews估计方法汇总|五分钟速览框架
第六章 因子分析
为什么要进行因子正交化处理?
商业决策中如何快速找到问题关键?变量降维算法详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服