首页 > 其他分享 >R语言用GARCH模型波动率建模和预测、回测风险价值 (VaR)分析股市收益率时间序列|附代码数据

R语言用GARCH模型波动率建模和预测、回测风险价值 (VaR)分析股市收益率时间序列|附代码数据

时间:2024-04-22 23:47:30浏览次数:25  
标签:预测 模型 序列 回测 GARCH VaR 语言

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

最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出。

风险价值 (VaR) 是金融风险管理中使用最广泛的市场风险度量,也被投资组合经理等从业者用来解释未来市场风险

风险价值 (VaR)

  • VaR 可以定义为资产在给定时间段内以概率 θ 超过的市场价值损失。对于收益率 rt 的时间序列,VaRt将是这样的

图片

其中 It-1表示时间 t-1 的信息集。

  • 尽管 VaR 在提供资产组合下行风险的简单总结时具有吸引人的简单性,但没有单一的计算方法。

1% 风险价值

  • 将价格转换为收益
   
library(ggplot2)
# 计算收益率的正态密度

# 价格与收益的关系

bp2 = Close
# 转换收益率

bret = dailyReturn
# 改变列名
colnames(data_rd) = c("x", "y")
# 正态分位数
vr1 = quantile
 ggplot(data, aes(x = x, y = y))

图片

图 :1% VaR


点击标题查阅往期内容

图片

R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究分析案例

图片

左右滑动查看更多

图片

01

图片

02

图片

03

图片

04

图片

  • 在分布术语中,对于分布 F,VaR 可以定义为它的第 p 个分位数,由下式给出

图片

其中 F−1是分布函数的倒数,也称为分位数函数。因此,一旦可以定义收益序列的分布,VaR 就很容易计算。

使用 GARCH 进行波动率建模和预测

  •    
    广义自回归条件异方差 (GARCH) 模型 ,用于预测条件波动率的最流行的时间序列模型。
  •    
    这些模型是条件异方差的,因为它们考虑了时间序列中的条件方差。GARCH 模型是在金融风险建模和管理中用于预测 VaR 和条件 VaR 等金融风险度量的最广泛使用的模型之一。
  •    
    GARCH 模型是 ARCH 模型的广义版本。具有旨在捕获波动率聚类的 p 滞后项的标准 ARCH(p) 过程可以编写如下

图片

其中,第 t 天的收益为 Yt=σtZt和 Zt∼iid(0,1),即收益的创新是由随机冲击驱动的

  • GARCH(p,q) 模型在 ARCH(p) 模型中包含滞后波动率,以纳入历史收益的影响

图片

  • GARCH(1,1) 每个阶数只使用一个滞后,是实证研究和分析中最常用的版本。

 GARCH(1,1) 预测 VaR

  •    
    其中最通用和最有能力的一种是 rugarch 包。在这里,我们使用数据集来演示使用 rugarch 包中可用的函数和方法对 GARCH 进行建模。
  •    
    具有恒定均值方程的 GARCH(1,1) 模型 可以指定如下:
   
ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1,
    1)), mean.model = list(armaOrder = c(0, 0)))
  • 上面存储的规范 garch_spec 现在可用于将 GARCH(1,1) 模型拟合到我们的数据。以下代码使用该函数将 GARCH(1,1) 模型拟合到 BHP 对数收益并显示结果。

图片

图片

  • 使用对象类可用的各种方法获得选定的拟合统计量
   
par1 = par() #保存图形参数

# 标准化残差
plot(figarch, which = 10)
# 2. 条件SD 
plot(fiarch, which = 3)

图片

图 :GARCH(1,1) 的两个信息图

使用样本外的 VaR 预测 

  • 让我们使用 Student-t 分布,因为收益并不总是遵循正态分布
   
# 学生-T分布的spec2
spc2 = ugarchspec
  • rugarch 包对于估计移动窗口模型和预测 VaR 具有非常有用的功能。
   
garchroll(spec2, data = bpret
  • 我们可以使用以下例程绘制 1% 和 5% VaR 预测与实际收益的对比。
   
# 注意绘图方法提供了四张图,其中VaR为选项-4
# 预测1%的学生-t GARCH风险值
plot(v.t, which = 4, VRaha = 0.01)
# 5%学生-t GARCH风险值
plot(var.t, which = 4, Vaalha = 0.05)

图片

图:实际收益率与 1% VaR 预测

  • 最后获得回测
   
# VaR预测的回测

report(va., VaRha = 0.05)  #α的默认值是0.01

图片


图片

点击文末 “阅读原文”

获取全文完整资料。

本文选自《R语言用GARCH模型波动率建模和预测、回测风险价值 (VaR)分析股市收益率时间序列》。

点击标题查阅往期内容

R语言使用多元AR-GARCH模型衡量市场风险
R语言GARCH模型对股市sp500收益率bootstrap、滚动估计预测VaR、拟合诊断和蒙特卡罗模拟可视化R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格
GARCH-DCC模型和DCC(MVT)建模估计
R语言预测期货波动率的实现:ARCH与HAR-RV与GARCH,ARFIMA模型比较
ARIMA、GARCH 和 VAR模型估计、预测ts 和 xts格式时间序列
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析
Garch波动率预测的区制转移交易策略
金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格
R语言风险价值:ARIMA,GARCH,Delta-normal法滚动估计VaR(Value at Risk)和回测分析股票数据
R语言GARCH建模常用软件包比较、拟合标准普尔SP 500指数波动率时间序列和预测可视化
Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
MATLAB用GARCH模型对股票市场收益率时间序列波动的拟合与预测
R语言极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析
Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格
R语言ARIMA-GARCH波动率模型预测股票市场苹果公司日收益率时间序列
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测
R语言时间序列GARCH模型分析股市波动率
R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测
使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略
R语言用多元ARMA,GARCH ,EWMA, ETS,随机波动率SV模型对金融时间序列数据建模
R语言股票市场指数:ARMA-GARCH模型和对数收益率数据探索性分析
R语言多元Copula GARCH 模型时间序列预测
R语言使用多元AR-GARCH模型衡量市场风险
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格
R语言用Garch模型和回归模型对股票价格分析
GARCH(1,1),MA以及历史模拟法的VaR比较
matlab估计arma garch 条件均值和方差模型

标签:预测,模型,序列,回测,GARCH,VaR,语言
From: https://www.cnblogs.com/tecdat/p/18151843

相关文章

  • Environment variable $SOURCE_DATE_EPOCH: No digits were found:
    一、报错信息Environmentvariable$SOURCE_DATE_EPOCH:Nodigitswerefound: 二、解决方法1、修改build/main.mk核心操作如下:①makefile增加【fix】项,为了执行【date+%s>version.date】②makefile的【world】后面增加依赖【fix】 2、成型后的m......
  • unix /var/run/docker.sock: connect: permission denied
    由于安全整改,root被ssh_config禁用,故使用普通用户执行脚本,执行脚本过程中,使用普通用户运行docker命令时发现权限不够,报错如下GotpermissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:///var/run/docker.sock:Gethttp://%2Fvar%2Frun%2Fdocker.soc......
  • ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib
    ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/var/lib/mysql/mysql.sock'(2)=====================================================步骤:以下可用。(1)关闭mysql:servicemysqldstop(2)查看mysql.sock的位置(base)[root@VM-0-2-ce......
  • var 和 let 在 jQuery中的区别
    下面通过代码案例来进一步解释var和let在jQuerylink函数中的区别:(function($){$.fn.link=function(){//Exampleusing'var'varexampleVar='Thisisavarvariable';//Exampleusing'let'letexamp......
  • PostgreSql: ERROR: value too long for type character varying(1) 定位字段方法
    报错原因设置的数据库字段长度为1,但实际的值超过规定字段,导致报错。解决方案首先,需要定位字段是哪个字段出现的报错,但可惜的是,并没有报出具体是哪个字段在报错,所以只能通过检查Schema,查看哪些字段是长度为1的,然后再进行值的比较,才能锁定位置。ERROR:valuetoolongfortype......
  • R语言预测期货波动率的实现:ARCH与HAR-RV与GARCH,ARFIMA模型比较|附代码数据
    全文下载链接:http://tecdat.cn/?p=3832最近我们被客户要求撰写关于期货波动率的研究报告,包括一些图形和统计输出。在本文中,波动率是众多定价和风险模型中的关键参数,例如BS定价方法或风险价值的计算。在这个模型中,或者说在教科书中,这些模型中的波动率通常被认为是一个常数然而,情......
  • VARCHAR与VARCHAR2在Oracle和达梦的表现差异
    达梦数据库与Oracle数据库在VARCHAR上的异同在Oracle中不同:varchar:varchar存放可变长度的字符串,最大长度是2000,对于空串,varchar仍按空串处理。varchar2:也是存放可变长度的字符串,最大长度是4000。VARCHAR2把空串等同于null处理。相同:根据编码不同,可容纳汉字不同:具体要看字符......
  • Mr.LR.HBB (Mr. LavaRoad.Hygiene.BigBrother)
    我们宿舍的一号床名字叫做岩浆路。他是一个体型巨大的,脸胖到离谱并且捏起来很舒服的,抽象的,男孩子。「美好的起源」他在军训时用滑稽的身躯成功引起了我的注意,后来我们又在同一个宿舍,我们就渐渐熟识了。后来又发现我玩florr,虽然我那时已经退游,但是听到有人玩过我曾经玩的游戏,......
  • Mysql中Varchar(50)和varchar(500)区别是什么?
    一.问题描述我们在设计表结构的时候,设计规范里面有一条如下规则:对于可变长度的字段,在满足条件的前提下,尽可能使用较短的变长字段长度。为什么这么规定,我在网上查了一下,主要基于两个方面基于存储空间的考虑基于性能的考虑网上说Varchar(50)和varchar(500)存储空间上是......
  • 解决OpenEuler上无法使用varlgrind
    一般来说,欧拉操作系统都没有安装glibc-debuginfo,所以需要排查注入内存泄漏问题,需要使用valgrind时,它会报错,提示需要暗转glibc-debuginfo。错误信息一般张这样。valgrind:Fatalerroratstartup:afunctionredirectionvalgrind:whichismandatoryforthisplatform-tool......