R中的多元GARCH(1,1)

尼尔斯

我使用R来估计4个时间序列的多元GARCH(1,1)模型。我尝试了rmgarch包。好像我使用的是错误的,但我不知道我的错误是什么。第一次使用。

library(quantmod)
library(fBasics)
library(rmgarch)
#load data, time series closing prices, 10 year sample
#DAX 30
getSymbols('^GDAXI', src='yahoo', return.class='ts',from="2005-01-01",    to="2015-01-31")
GDAXI.DE=GDAXI[ , "GDAXI.Close"]
#S&P 500
getSymbols('^GSPC', src='yahoo', return.class='ts',from="2005-01-01", to="2015-01-31")
GSPC=GSPC[ , "GSPC.Close"]
#Credit Suisse Commodity Return Strat I
getSymbols('CRSOX', src='yahoo', return.class='ts',from="2005-01-01", to="2015-01-31")
CRSOX=CRSOX[ , "CRSOX.Close"]
#iShares MSCI Emerging Markets
getSymbols('EEM', src='yahoo', return.class='ts',from="2005-01-01", to="2015-01-31")
EEM=EEM[ , "EEM.Close"]
#calculating log returns of the time series
log_r1=diff(log(GDAXI.DE[39:2575]))
log_r2=diff(log(GSPC))
log_r3=diff(log(CRSOX))
log_r4=diff(log(EEM))
#return vector
r_t=cbind(log_r1, log_r2,log_r3, log_r4)
#specifying and fitting the model
model = multispec(replicate(4, ugarchspec(variance.model = c(1,1))))
model_order = mgarchspec(model, Order = c(1, 1), distribution ='mvnorm')
fit = mgarchfit(model_order, data = r_t, solver = 'solnp',fit.control =    list(eval.se = TRUE))
print(fit.1)
Hanjo Jo'burg Odendaal

在下面,您将发现多元DCC和ADCC Garch模型的并行实现。目前尚不清楚您要实现什么目标,但是我认为您正在寻找每个变量之间的某种相关性。或至少是一种不相关的波动率度量。我的代码基于以下代码:“多变量Garch实现”我强烈建议阅读。

像以前一样加载所有系列

library(rmgarch)
library(parallel)
library(quantmod)

确保数据长度相等,并计算时间序列的日志返回

Dat<-data.frame(GDAXI.DE[-c(1:22)],GSPC,CRSOX,EEM)
Dat<-apply(Dat,2,function(x) Delt(x,k=1,type="log"))

指定您的单变量garch过程以及多变量模型。在这里,我同时包括了香草DCC-GARCH和非对称DCC-GARCH模型规范

xspec = ugarchspec(mean.model = list(armaOrder = c(1, 1)), variance.model = list(garchOrder = c(1,1), model = 'sGARCH'), distribution.model = 'norm')
uspec = multispec(replicate(4, xspec))
spec1 = dccspec(uspec = uspec, dccOrder = c(1, 1), distribution = 'mvnorm')
spec1a = dccspec(uspec = uspec, dccOrder = c(1, 1), model='aDCC', distribution = 'mvnorm')

在执行计算密集型模型时,我建议使用并行方法。幸运的是,rmgarch内置了此功能。因此,让我们打开要在其上执行分析的聚类的数量

cl = makePSOCKcluster(4)
multf = multifit(uspec, Dat, cluster = cl)

现在我们终于可以拟合模型

fit1 = dccfit(spec1, data = Dat, fit.control = list(eval.se = TRUE), fit = multf, cluster = cl)
fit_adcc = dccfit(spec1, data = Dat, fit.control = list(eval.se = TRUE), fit = multf, cluster = cl)
print(fit1)           
print(fit_adcc)

重要的是要记住使用以下命令关闭集群

stopCluster(cl)

希望这对您的需求有所帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

“多元正态 Y[1,1] 的平均值必须与 Y[1,1] 具有相同数量的分量”- WinBUGS 中的错误

尝试最大化GARCH(1,1)时Optim()花费的时间太长

正则表达式:如何在(1,2)(1,1)(1,1)中捕获数字

将结果绑定到SAS中的[-1,1]

在 r 中回测 garch

R中的GARCH模型的限制测试(H0:alpha1 + beta1 = 1,H1:alpha1 + beta1≠1)不起作用

在R ggplot2中,包括stat_ecdf()端点(0,0)和(1,1)

在[-1,1]中为c计算sqrt((b²*c²)/(1-c²))的数值稳定方法

DCC GARCH模型-R中的矩阵误差

在Python中,如何对嵌套列表求和:[[1,0],[1,1],[1,0]]→[3,1]

SQL身份(1,1)从0开始

getActiveCell()始终返回1,1

Macbook Pro 1,1上的Ubuntu

Microsoft SQL Server 中的 Identity(1,1) - 是否有实际理由使用 1,1 以外的值作为种子/增量?

PysimpleGui-国际象棋示例中关于size =(1,1)和图像着色的混淆

XML文档(1,1)中存在错误。反序列化时

VBA:从Outlook VBA中已保存的xls文件中提取单元格(1,1)

Swift-Regex-提取括号中的数字除以逗号(1,1)(2,3)

如何在flutter中的[-1,1]之间对数据进行规范化

【Ubuntu 16.04.2】仅在重新启动时挂在Apple MacPro 1,1中

在 GAN 网络中,尝试将 tensorflow 数据集转换为范围 [-1,1] 时出错

(VBA)何时使用.cell(1,1)或.cell(1,1)。值引用

如何为Keras中的图层设置二进制权重值(0,1)或(-1,1)?

WebAudio LFO:范围从{-1,1}到{0,1}

-k1,1的含义是什么

R:如何在数据框对象(例如df [1,1])中分隔以逗号分隔的值?

尝试在R中估计GARCH模型时发生错误

定义表时如何在google bigquery中编写IDENTITY(1,1)和默认值?

为什么在golang中[int] int {0}与make([] int,1,1)的DeepEqual失败?有其他选择吗?