关于算法:拓端tecdatR语言中的copula-GARCH模型拟合时间序列并模拟分析

56次阅读

共计 1636 个字符,预计需要花费 5 分钟才能阅读完成。

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

 在这个文章中,咱们演示了 copula GARCH 办法(个别状况下)。

1 模仿数据

首先,咱们模仿一下翻新散布。咱们抉择了一个小的样本量。现实状况下,样本量应该更大,更容易发现 GARCH 效应。

## 模仿翻新
d <- 2 # 维度
tau <- 0.5 # Kendall's tau
Copula("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.)

对于边缘散布,咱们也假设为 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")


最受欢迎的见解

1. 用机器学习辨认一直变动的股市情况—隐马尔科夫模型 (HMM) 的利用

2.R 语言 GARCH-DCC 模型和 DCC(MVT)建模预计

3.R 语言实现 Copula 算法建模依赖性案例剖析报告

4.R 语言 COPULAS 和金融工夫序列数据 VaR 剖析

5.R 语言多元 COPULA GARCH 模型工夫序列预测

6. 用 R 语言实现神经网络预测股票实例

7.r 语言预测稳定率的实现:ARCH 模型与 HAR-RV 模型

8.R 语言如何做马尔科夫转换模型 markov switching model

9.matlab 应用 Copula 仿真优化市场危险

正文完
 0