关于数据挖掘:R语言单变量和多变量多元动态条件相关系数DCCGARCH模型分析股票收益率金融时间序列数据波动率

53次阅读

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

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

介绍

当您解决金融工夫序列时,咱们通常能够取得绝对高频的察看后果。例如,每天进行察看是很常见的。事实上,当初能够取得每小时、分钟、秒甚至毫秒的观测值。

应用的包

有许多软件包能够使咱们可能预计稳定率模型。咱们将应用的  包是由 Alexios Ghalanos 编写的 rugarch 用于单变量 GARCH 模型和(用于多变量模型)包。rmgarch 咱们还将应用该 quantmod 软件包,因为它能够让咱们轻松拜访一些规范财务数据。

数据上传

在这里,咱们将应用包提供的不便的数据检索性能(getSymbolsquantmod 来检索一些数据。例如,此函数可用于检索股票数据。默认起源是 Yahoo Finance. 如果您想找出哪些股票有哪个符号,您应该可能在互联网上搜寻以找到股票代码列表。上面介绍如何应用该性能。但请留神,我的教训是有时连贯不起作用,您可能会收到谬误音讯。在这种状况下,只需在几秒钟后重试,它就能够失常工作。

getSymbols("IBM")
## \[1\] "IBM"
getSymbols("GOOG")
## \[1\] "GOOG"
getSymbols("BP")
## \[1\] "BP"

在您的环境中,您能够看到这些命令中的每一个都应用各自的股票代码名称加载一个对象。让咱们看一下这些数据框之一,以理解这些数据是什么:

您能够看到该对象蕴含一系列每日察看后果(OpenHigh和 Close股价)。咱们还理解到对象被格式化为xts 对象,是一种工夫序列格局,实际上咱们理解到数据范畴从 2007-01-03 到 2022-03-24。

应用以下命令生成一个看起来有点花哨的图表

当咱们预计稳定率模型时,咱们应用收益率。有一个函数能够将数据转换为收益率。

dailyReturn(IBM)

单变量 GARCH 模型

您须要做的第一件事是确保您晓得要预计的 GARCH 模型类型,而后让 R 晓得这一点。让咱们看看:

这里的关键问题是 Mean Model(这里是 ARMA(1,1) 模型)和 GARCH Model, 这里 sGARCH(1,1) 基本上是 GARCH(1,1) 的模型。

假如您要将均匀模型从 ARMA(1,1) 更改为 ARMA(1,0),即 AR(1) 模型。

uec <- ugarchspec

以下是 EWMA 模型示例。

ewm = ugarchspe

模型预计

当初咱们曾经指定了一个模型来预计,咱们须要找到最好的参数,即咱们须要预计模型。这一步是通过 it 函数来实现的。

fit(specrIBM)

fit 当初是一个蕴含一系列预计后果的列表。让咱们看看后果

  

ar1 是均值模型的 AR1 系数(这里十分小且基本上不显着),alpha1 是 GARCH 方程中残差平方 beta1 的系数,是滞后方差的系数。

通常,您会心愿应用模型输入进行一些进一步的剖析。因而,理解如何提取参数估计值、标准误差或残差等信息十分重要。该对象 ugfit 蕴含所有信息。

names

如果您想提取预计的系数,您能够通过以下形式进行:

让咱们绘制平方残差和预计的条件方差:

模型预测

通常您会心愿应用预计模型来随后预测条件方差。用于此目标的函数是 forecast 函数。该应用程序相当简略:

hforecast(ugfit

正如你所看到的,咱们曾经对将来十天进行了预测,包含预期收益 (Series) 和条件稳定率(条件方差的平方根)。您能够提取条件稳定率预测如下:

forecast$sigmaFor
plot

请留神,稳定率是条件方差的平方根。

为了将这些预测放在上下文中,让咱们将它们与预计中应用的最初 50 个察看值一起显示。

 (tail(ug_var,20) )  # 失去最初 20 个察看值
 tail(ug_res2,20))  # 失去最初的 20 个观测值

您能够看到条件方差的预测是如何从上次预计的条件方差中得出的。事实上,它从那里缓缓地向无条件方差值递加。

多元 GARCH 模型

通常,您须要对波动性进行建模。这能够通过单变量 GARCH 模型的多变量版本来实现。预计多变量 GARCH 模型比单变量 GARCH 模型要艰难得多,但侥幸的是,曾经开发了解决大多数这些问题的程序。

在这里,咱们来预计 BP、Google/Alphabet 和 IBM 股票收益率的多元稳定率模型。

在这里,咱们保持应用动静条件相干 (DCC) 模型。在预计 DCC 模型时,基本上是预计单个 GARCH 类型模型。而后将这些用于标准化各个残差。作为第二步,必须指定这些标准化残差的相干动静。

模型设置

在这里,咱们假如咱们对三种资产中的每一种都应用雷同的单变量稳定率模型。

# DCC (MVN)
u.n = multispec

这个命令有什么作用?它指定了一个 AR(1)-GARCH(1,1) 模型。将这个模型复制了 3 次(因为咱们领有三种股票,IBM、Google/Alphabet 和 BP)。

咱们当初应用命令预计

后果保留在 multf 其中,您能够 multf 在命令窗口中键入以查看这三个模型的预计参数。然而咱们将在这里持续指定 DCC 模型。

spec

模型预计

当初咱们能够应用该 fit 函数来预计模型了。

fit1 =fit(spec1)

当您预计像 DCC 模型这样的多元稳定率模型时,您通常对预计的协方差或相关矩阵感兴趣。毕竟,这些模型的外围是容许股票之间的相关性随工夫变动。因而,咱们当初将学习如何提取这些。

# 获取基于模型的工夫变动协方差(阵列)和相关矩阵
rcov(fit1) # 提取协方差矩阵
rcor(fit1) # 提取相关矩阵

要理解咱们手头的数据,咱们能够看一下维度:

咱们失去三个输入,通知咱们咱们有一个三维对象。前两个维度各有 3 个元素(想想一个 3×3 相关矩阵),而后是第三个维度,有 3834 个元素。这通知咱们 cor1 存储了 3834(3×3) 个相关矩阵,一个用于每天的数据。

让咱们看看最初一天的相关矩阵,第 3834 天;

因而,假如咱们要绘制 Google 和 BP 之间的时变相关性,即最初一天的 0.1924。在咱们的收益矩阵中,rX BP 是第二个资产,而 Google 是第三个。因而,在任何特定的相关矩阵中,咱们都须要第 2 行和第 3 列中的元素。

 cor1\[2,1,\] # 将最初一个维度留空意味着咱们须要所有元素
 as.xts(c G) # 采纳 xts 的工夫序列格局 -- 对绘图很有用

当初咱们绘制这个。

如您所见,随着工夫的推移存在显着变动,相关性通常在 0.2 和 0.5 之间变动。

让咱们绘制三种资产之间的所有三种相关性。

预测

通常您会心愿应用您的预计模型来生成协方差或相关矩阵的预测

 

相关性的理论预测能够通过

 mforecast$R    # 用 H 来预测协方差

查看构造时 Rf

您意识到该对象 Rf 是一个蕴含一个元素的列表。事实证明,这个列表项是一个 3 维矩阵 / 数组,其中蕴含 3×3 相关矩阵的 10 个预测。例如,如果咱们想提取 IBM(第一项资产)和 BP(第二项资产)之间相关性的 10 个预测,咱们必须按以下形式进行:

Rf\[\[1\]\]\[1,2,\] # IBM 和 BP 之间的相干预测值
 Rf\[\[1\]\]\[1,3,\] # IBM 和谷歌之间的相干预测
 Rf\[\[1\]\]\[2,3,\] # BP 和 Google 之间的相关性预测

至于单变量波动性模型,让咱们将预测与相关性的最初样本内预计一起显示。

# 这将创立一个有 3 个窗口的框架,由图画来填充
c(tail(cor1\[1,2,\],20),rep(NA,10))  # 失去最初 20 个相干观测值
c(rep(NA,20),corf_IB) # 失去 10 个预测值
plot 

c(tail(cor1\[1,3,\],20),rep(NA,10))  # 失去最初 20 个相干观测值
c(rep(NA,20),corf_IG) # 失去 10 个预测值


c(tail(cor1\[2,3,\],20),rep(NA,10))  # 取得最初 20 个相干观测值
c(rep(NA,20),corf_BG) # 失去 10 个预测值


 

最受欢迎的见解

1.HAR-RV- J 与递归神经网络(RNN)混合模型预测和交易大型股票指数的高频稳定率

2.R 语言中基于混合数据抽样 (MIDAS) 回归的 HAR-RV 模型预测 GDP 增长回归的 HAR-RV 模型预测 GDP 增长 ”)

3.稳定率的实现:ARCH 模型与 HAR-RV 模型

4.R 语言 ARMA-EGARCH 模型、集成预测算法对 SPX 理论稳定率进行预测

5.GARCH(1,1),MA 以及历史模拟法的 VaR 比拟

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

7.R 语言基于 ARMA-GARCH 过程的 VAR 拟合和预测

8.matlab 预测 ARMA-GARCH 条件均值和方差模型

9.R 语言对 S&P500 股票指数进行 ARIMA + GARCH 交易策略

正文完
 0