原文链接:http://tecdat.cn/?p=23115
最近咱们被客户要求撰写对于copula GARCH的钻研报告,包含一些图形和统计输入。
在这个文章中,咱们演示了copula GARCH办法(个别状况下)
1 模仿数据
首先,咱们模仿一下翻新散布。咱们抉择了一个小的样本量。现实状况下,样本量应该更大,更容易发现GARCH效应。
## 模仿翻新散布d <- 2 # 维度tau <- 0.5 # Kendall's tauCopula("t", param = th, dim = d, df = nu) # 定义copula对象rCopula(n, cop) # 对copula进行采样sqrt((nu.-2)/nu.) * qt(U, df = nu) # 对于ugarchpath()来说,边缘必须具备均值0和方差1!
当初咱们用这些copula依赖的翻新散布来模仿两个ARMA(1,1)-GARCH(1,1)过程。
## 边缘模型的参数fixed.p <- list(mu = 1,spec(varModel, meanModel, fixed.pars ) # 条件翻新密度(或应用,例如,"std")## 应用翻新模仿ARMA-GARCH模型## 留神: ugarchpath(): 从spec中模仿;garchpath(uspec, n.sim = n, # 模仿的门路长度 ## 提取后果系列X. <- fitted(X) # X_t = mu_t + eps_t (simulated process)## 根本查看:stopifnot(all.equal(X., X@path$seriesSim, check.attributes = FALSE),## 绘制边缘函数plot(X., type = "l", xlab = "t")
2 基于模仿数据的拟合程序
咱们当初展现如何对X进行ARMA(1,1)-GARCH(1,1)过程的拟合(咱们删除参数fixed.pars来预计这些参数)。
spec(varModel, mean.model = meanModel) ugarchfit(uspec, data = x))
查看(标准化的)Z,即残差Z的伪观测值。
plot(U.)
点击题目查阅往期内容
【视频】Copula算法原理和R语言股市收益率相依性可视化剖析
左右滑动查看更多
01
02
03
04
对于边缘散布,咱们也假设为t散布,但自由度不同。
fit("t", dim = 2), data = U., method = "mpl")
<!---->
nu. <- rep(nu., d) # 边缘自由度est <- cbind(fitted = c(estimate, nu.), true = c(th, nu, nu.)) # 拟合与实在值
3 从拟合的工夫序列模型进行模仿
从拟合的copula 模型进行模仿。
set.seed(271) # 可重复性sapply(1:d, function(j) sqrt((nu[j]-2)/nu[j]) * qt(U[,j], df = nu[j]))## => 翻新必须是标准化的garch()sim(fit[[j]], n.sim = n, m.sim = 1,
并绘制出每个后果序列(XtXt)。
apply(sim,fitted(x)) # 模仿序列plot(X.., type = "l")