【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测

本文主要是介绍【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972

   个人介绍: 研一|统计学|干货分享
         擅长Python、Matlab、R等主流编程软件
         累计十余项国家级比赛奖项,参与研究经费10w、40w级横向

文章目录

  • 1 数据读取及预处理
  • 2 GARCH模型拟合
  • 3 模型预测
  • 4 VAR、ES风险度量

该篇文章主要展示了应用一个带有标准学生t分布新息的GARCH(1,1)模型,对数据进行拟合并且预测风险损失,同时进行了风险价值VaR和局部均值ES的度量,附完整代码及分析。

1 数据读取及预处理

  运行程序:

da=read.table("F:\\ch7data\\d-ibm-0110.txt",header=T)
xt=-log(da$return+1)   # calculate negative log returns.library(fGarch)

2 GARCH模型拟合

  此处为作演示,拟合GARCH(1,1)模型。

  运行程序:

library(fGarch)
m2=garchFit(~garch(1,1),data=xt,trace=F,cond.dist="std")
m2

  运行结果:

## 
## Title:
##  GARCH Modelling 
## 
## Call:
##  garchFit(formula = ~garch(1, 1), data = xt, cond.dist = "std", 
##     trace = F) 
## 
## Mean and Variance Equation:
##  data ~ garch(1, 1)
## <environment: 0x0000000018857168>
##  [data = xt]
## 
## Conditional Distribution:
##  std 
## 
## Coefficient(s):
##          mu        omega       alpha1        beta1        shape  
## -4.1127e-04   1.9223e-06   6.4480e-02   9.2863e-01   5.7513e+00  
## 
## Std. Errors:
##  based on Hessian 
## 
## Error Analysis:
##          Estimate  Std. Error  t value Pr(>|t|)    
## mu     -4.113e-04   2.254e-04   -1.824  0.06811 .  
## omega   1.922e-06   7.417e-07    2.592  0.00954 ** 
## alpha1  6.448e-02   1.323e-02    4.874 1.09e-06 ***
## beta1   9.286e-01   1.407e-02   65.993  < 2e-16 ***
## shape   5.751e+00   6.080e-01    9.459  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Log Likelihood:
##  7218.69    normalized:  2.870254 

3 模型预测

  此处预测未来三期情况。

  运行程序:

predict(m2,3)

  运行结果:

##    meanForecast   meanError standardDeviation
## 1 -0.0004112737 0.008100874       0.008100874
## 2 -0.0004112737 0.008191121       0.008191121
## 3 -0.0004112737 0.008279774       0.008279774

4 VAR、ES风险度量

  运行程序:

source("F:\\ch7data\\RMeasure.R")
m22=RMeasure(-.0004113,.0081009,cond.dist="std",df=5.751)

  运行结果:

## 
##  Risk Measures for selected probabilities: 
##        prob        VaR         ES
## [1,] 0.9500 0.01240096 0.01756588
## [2,] 0.9900 0.02045082 0.02653004
## [3,] 0.9990 0.03456563 0.04298998
## [4,] 0.9999 0.05421689 0.06640880

  根据结果得出拟合的模型为:

x t = − 0.0004113 + a t ; a t = σ t ϵ t ; ϵ t ∼ N ( 0 , 1 ) x_t=-0.0004113+a_t;a_t=\sigma _t \epsilon_t;\epsilon_t \sim N(0,1) xt=0.0004113+at;at=σtϵt;ϵtN(0,1)

σ t 2 = 1.922 × 1 0 t − 6 + 0.0645 × a t − 1 2 + 0.9286 σ t − 1 2 \sigma _t^2=1.922×10^{-6}_t+0.0645×a_{t-1}^2+0.9286 \sigma_{t-1}^2 σt2=1.922×10t6+0.0645×at12+0.9286σt12

  所有的系数估计在5%的水平下都是显著的。拟合的自由度为5.751,同时,模型检验统计量确认了模型的充分性。在预测下一个时刻时,均值模型和波动率模型的超前一步预测为-0.0004113和0.00801,相应的,我们有:

V a r 0.95 = 0.01514 ; E S 0.95 = 0.02185 Var_{0.95}=0.01514;ES_{0.95}=0.02185 Var0.95=0.01514;ES0.95=0.02185

V a r 0.95 = 0.02542 ; E S 0.95 = 0.03295 Var_{0.95}=0.02542;ES_{0.95}=0.03295 Var0.95=0.02542;ES0.95=0.03295

  因此,应用学生t分布的新息,该金融头寸的风险度量为:

V a r 0.95 = 15450 ; E S 0.95 = 21850 Var_{0.95}=15450;ES_{0.95}=21850 Var0.95=15450;ES0.95=21850

  结合 【R语言实战】——带有高斯新息的金融时序的GARCH模型拟合预测及VAR/ES风险度量可以看出,具有厚尾的新息会给出更高的风险度量,说明正态假设下的VaR倾向于低估真实的风险。

这篇关于【R语言实战】——带有新息为标准学生t分布的金融时序的GARCH模型拟合预测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/808364

相关文章

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一