R语言ARMA|R语言ARMA GARCH COPULA模型拟合股票收益率时间序列和模拟可视化
原文链接:http://tecdat.cn/?p=25770
在本文中,我们展示了 copula GARCH 方法拟合模拟数据和股票数据并进行可视化。 r
还提供了一个特殊情况(具有正态或学生 t残差)。
一、如何在R中对股票x和y的收益率拟合copula模型
数据集
【R语言ARMA|R语言ARMA GARCH COPULA模型拟合股票收益率时间序列和模拟可视化】为了这个例子的目的,我使用了一个简单的股票x和y的收益率数据集(x.txt和y.txt)。
首先,我们需要加载数据并将其转换成矩阵格式。也可以选择绘制数据。
x <- read.tabley <- read.table# 实际观察结果plot
数据的图表
文章图片
现在我们已经加载了我们的数据,可以清楚地看到,存在正相关。
下一步是拟合。为了拟合数据,我们需要选择一个copula模型。该模型应根据数据的结构和其他因素来选择。作为第一种近似值,我们可以说我们的数据显示了正相关,因此一个可以复制这种相关的copula模型应该是不错的。我选择使用正态copula。对于其他类型的copula模型来说,拟合过程是相同的。
让我们来拟合数据
# 正态CopulanormalCopulafiop<- fit# 系数rho <- coefprint
文章图片
请注意,数据必须通过函数pobs()输入,该函数将真实观测值转换为单位平方[0,1]的伪观测值。
还要注意的是,我们使用的是 "ml "方法(最大似然法),但是也有其他方法,如 "itau"。
在我们的例子中,拟合的协整参数rho等于0.73。让我们模拟一些假的观察结果
通过绘制伪观测值和模拟观测值,我们可以看到使用copula的模拟与伪观测值的匹配情况。
# 伪观察pobsplot# 模拟数据u1 = rCopula
文章图片
这个特定的copula可能不是最好的,因为它显示了严重的尾部相关性,而这在我们的数据中并不强烈,不过这只是一个开始。
在开始的时候,我们可以选择将数据与每个随机变量的分布画在一起,如下所示
# 用柱状图绘制数据
hst <- hist
top <- maxlayout
par
plot
barplot
并得到我们的原始数据集的这种表现形式
文章图片
将 t copula 拟合到标准化残差
Z
。对于边缘分布,我们还假设 t分布,但具有不同的自由度;为简单起见,此处省略了估计。文章图片
n <- rep # 边际自由度;为了简单起见,这里使用已知的自由度
es <- cbind # 拟合与真实
rownames
文章图片
从拟合的时间序列模型中模拟 从拟合的 copula 模型进行模拟。
并为每个边缘绘制结果序列 (Xt)
X <- sapply # 模拟序列X_t
matplot
文章图片
二、模拟数据 首先,我们模拟了分布。为了演示的目的,我们选择了一个小的样本量。
##模拟
Copula # 定义copula对象
set.seed(21) # 可重复性
# 对copula进行采样
sqrt * qt # 对于ugarchpath()来说,边际必须具有均值0和方差1!
现在我们使用依赖于 copula 来模拟两个 ARMA(1,1)-GARCH(1,1) 过程。 ARMA(p1,q1)-GARCH(p2,q2) 模型由下式给出
文章图片
## 固定边缘模型的参数
fixedp <- list
var <- list(model = "sGARCH") # 标准GARCH
garch # 条件创新密度(或者使用,例如,"std")。## 使用从属创新模拟ARMA-GARCH模型
garch n.sim = n, # 模拟的路径长度
m.sim = d, # 要模拟的路径数量##提取结果系列
fit# X\_t = mu\_t + eps_t (模拟过程)
sig # sigma_t (条件性标准偏差)
resid # epsilon\_t = sigma\_t * Z_t (残差)## 绘制
matplot
文章图片
基于模拟数据的拟合 我们现在展示如何将 ARMA(1,1)-GARCH(1,1) 过程拟合到
X
garchspec
fit <- apply
检查(标准化的)Z,即残差Z的伪观测值。
Z <- sapply
U <- pobs
plot
文章图片
将 t copula 拟合到标准化残差
Z
。对于边缘分布,我们还假设 t分布,但具有不同的自由度;为简单起见,此处省略了估计。fitCopula
文章图片
n <- rep # 边际自由度;为了简单起见,这里使用已知的自由度
es <- cbind # 拟合与真实
rownames
文章图片
从拟合的时间序列模型中模拟 从拟合的 copula 模型进行模拟。
set.seed(21) # 可重复性
U <- rCopula
Z. <- sapply
## => 标准化的garchsim()
sim <- lapply
并为每个边缘绘制结果序列 (Xt)
X <- sapply # 模拟序列X_t
matplot
文章图片
文章图片
最受欢迎的见解
1.R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究
2.r语言实现copula算法建模依赖性案例
3.R语言COPULAS和金融时间序列数据VaR分析
4.R语言多元COPULA GARCH 模型时间序列预测
5.GARCH(1,1),MA以及历史模拟法的VaR比较
6.matlab使用Copula仿真优化市场风险数据分析
7.R语言实现向量自动回归VAR模型
8.R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型
9.R语言VAR模型的不同类型的脉冲响应分析
推荐阅读
- c语言查看当前指针所占空间,深入理解C语言指针及占据内存空间分享!
- c语言|c语言 指针 pdf,深入理解C语言指针.PDF
- 快讯|极客日报(京东:应届博士生年薪最高达200万元;苹果暂停俄罗斯App Store广告投放;3月编程语言排行榜出炉|极客头条)
- JAVA 解压rar文件
- R语言cut函数
- 语言|转(我的野蛮成长)
- c语言|C/JAVA 每日一练——零基础学习动态规划
- c语言|C语言——结构体(初阶版)
- c语言|C语言——数据的存储
- MySQL|MySQL — DML语言