关于数据挖掘:R语言ARMA-GARCH-COPULA模型拟合股票收益率时间序列和模拟可视化

12次阅读

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

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

在本文中,咱们展现了 copula GARCH 办法拟合模仿数据和股票数据并进行可视化。r还提供了一个非凡状况(具备正态或学生 t 残差)。

 一、如何在 R 中对股票 x 和 y 的收益率拟合 copula 模型

数据集

为了这个例子的目标,我应用了一个简略的股票 x 和 y 的收益率数据集(x.txt 和 y.txt)。

首先,咱们须要加载数据并将其转换成矩阵格局。也能够抉择绘制数据。

    x <- read.table

    y <- read.table

    


    # 理论察看后果

    plot

数据的图表

当初咱们曾经加载了咱们的数据,能够分明地看到,存在正相干。

下一步是拟合。为了拟合数据,咱们须要抉择一个 copula 模型。该模型应依据数据的构造和其余因素来抉择。作为第一种近似值,咱们能够说咱们的数据显示了正相干,因而一个能够复制这种相干的 copula 模型应该是不错的。我抉择应用正态 copula。对于其余类型的 copula 模型来说,拟合过程是雷同的。

让咱们来拟合数据

    # 正态 Copula

    normalCopula

    fiop<- fit
    


    # 系数

    rho <- coef

    print

请留神,数据必须通过函数 pobs()输出,该函数将实在观测值转换为单位平方 [0,1] 的伪观测值。
还要留神的是,咱们应用的是 “ml “ 办法(最大似然法),然而也有其余办法,如 “itau”。

在咱们的例子中,拟合的协整参数 rho 等于 0.73。让咱们模仿一些假的察看后果

通过绘制伪观测值和模仿观测值,咱们能够看到应用 copula 的模仿与伪观测值的匹配状况。

    # 伪察看

    pobs

    plot
    


    # 模仿数据


    u1 = rCopula

这个特定的 copula 可能不是最好的,因为它显示了重大的尾部相关性,而这在咱们的数据中并不强烈,不过这只是一个开始。

在开始的时候,咱们能够抉择将数据与每个随机变量的散布画在一起,如下所示

# 用柱状图绘制数据
hst <- hist
top <- max

layout
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 模型的不同类型的脉冲响应剖析

正文完
 0