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

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

时间:2024-02-24 10:44:06浏览次数:19  
标签:## 模型 GARCH 拟合 VaR ARMA

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

原文出处:拓端数据部落公众号

 

本文显示了如何基于潜在的ARMA-GARCH模型(当然也涉及更广泛意义上的QRM)来拟合和预测风险价值(VaR)。

从ARMA-GARCH过程模拟(log-return)数据

我们考虑使用t 分布的ARMA(1,1)-GARCH(1,1)过程。

模拟一个序列(用于说明目的)。

  perl
 
nu <- 3  
fixed.p <- list(mu = 0, #   mu (截距)
                ar1 = 0.5, #   phi_1 (AR(1) 参数 of mu_t)
                ma1 = 0.3, #   theta_1 (MA(1) 参数 of mu_t)
                omega = 4, #   alpha_0 (截距)
                alpha1 = 0.4, #   alpha_1 (GARCH(1) 参数 of sigma_t^2)
                beta1 = 0.2, #   beta_1 (GARCH(1) 参数 of sigma_t^2)
                shape = nu) #  
armaOrder <- c(1,1) # ARMA 参数
garchOrder <- c(1,1) # GARCH 参数
varModel <- list(model = "sGARCH", garchOrder = garchOrder)
spec <- ugarchspec(varModel, mean.model = list(armaOrder = armaOrder),
                   fixed.pars = fixed.p, distribution.model = "std") # t 标准残差

作为一个完整性检查,让我们绘制模拟序列,条件标准偏差和残差。

   
plot(X,   type = "l", xlab = "t", ylab = expression(X[t]))
​
plot(sig, type = "h", xlab = "t", ylab = expression(sigma[t]))

​

   
plot(eps, type = "l", xlab = "t", ylab = expression(epsilon[t]))

将ARMA-GARCH模型拟合到(模拟)数据

拟合ARMA-GARCH模型 。

让我们再考虑一些健全性检查。

   
## 拟合 ARMA(1,1)-GARCH(1,1) model
spec <- ugarchspec(varModel, mean.model = list(armaOrder = armaOrder),
                   distribution.model = "std") #  
fit <- ugarchfit(spec, data = X) # fit

##  
mu. <- fitted(fit) # 拟合 hat{mu}_t (= hat{X}_t)
sig. <- sigma(fit) # 拟合 hat{sigma}_t

##  
stopifnot(all.equal(as.numeric(mu.),  fit@fit$fitted.values),
          all.equal(as.numeric(sig.), fit@fit$sigma))

计算VaR时间序列

计算VaR估计值。请注意,我们也可以在这里使用基于GPD的估算模型。

Backtest VaR估计值

让我们回测VaR的估计。

   
## [1] 10
## [1] 12
## [1] "Correct Exceedances"
## [1] "Fail to Reject H0"
## [1] "Correct Exceedances & Independent"
## [1] "Fail to Reject H0"

基于拟合模型预测VaR

现在预测VaR。

模拟X_t的未来轨迹并计算相应的VaR

模拟序列,估计每个模拟路径的VaR(注意quantile()这里不能使用,因此我们必须手动构建VaR)并计算VaR _alpha的bootstrap置信区间。

结果对比

最后,我们显示所有结果。

 

非常感谢您阅读本文,有任何问题请在下面留言!


最受欢迎的见解

1.R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究

2.R语言时变参数VAR随机模型

3.R语言时变参数VAR随机模型

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

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

6.R语言时变参数VAR随机模型

7.R语言实现向量自动回归VAR模型

8.R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

9.R语言VAR模型的不同类型的脉冲响应分析

标签:##,模型,GARCH,拟合,VaR,ARMA
From: https://www.cnblogs.com/tecdat/p/18030851

相关文章

  • 3D Slicer编译错误:Variable Slicer_WC_LAST_CHANGED_DATE is expected to be defined.
    3DSlicer编译错误:VariableSlicer_WC_LAST_CHANGED_DATEisexpectedtobedefined. 解决:1、找到SlicerMacroExtractRepositoryInfo.cmake路径:F:\1_Slicer\CMake\SlicerMacroExtractRepositoryInfo.cmake2、添加 set(${wc_info_prefix}_WC_LAST_CHANGED_DATE"0000-00......
  • let、const、var、function所谓的”变量提升“、暂时性死区到底是什么
    今天看了大佬一个文章我用了两个月的时间才理解let-知乎(zhihu.com),文章中其实说得很清楚,还有大佬解决这个问题的整个心路历程。我这里做一个总结记录,专注于“变量提升”、暂时性死区这两个点做一个讨论。现象讨论下面这两段代码,我们都知道这段代码在控制台会打印undefined......
  • 协变返回类型(covariant return type)
    协变返回类型(covariantreturntype)C++中的协变返回类型(covariantreturntype)是指派生类(子类)中的虚函数返回类型可以是基类(父类)中虚函数返回类型的子类。这个特性使得在派生类中可以返回更具体的类型,而不违反了虚函数的约定。在C++11中,如果派生类的虚函数覆盖基类的虚函数,并......
  • MindSponge分子动力学模拟——定义Collective Variables(2024.02)
    技术背景在前面的几篇博客中,我们介绍了MindSponge分子动力学模拟框架的基本安装和使用和MindSponge执行分子动力学模拟任务的方法。这里我们介绍一个在增强采样领域非常常用的工具:CollectiveVariable(CV),或者我们也可以直接称呼其为一个物理量。因为像化学反应或者是蛋白质折叠等......
  • 转【】发】docker 迁移 /var/lib/docker(解决 /var/lib/docker 占用大 / 根目录空间占
    迁移docker工作目录https://codeleading.com/article/63835623469/#google_vignette目的:为了解决/var/lib/docker占用大/var分区空间不够问题说明:由于centos7.4系统,系统默认根目录下面为50G空间,docker默认数据目录在/var/lib/docker中,所以,会导致根目录占满,需要将docker的数......
  • MAC DOCKER Zookeeper 启动报错 mkdir /host_mnt/private/var/db/timezone/tz: operat
    在Mac电脑上启动Zookeeper和kafka的docker容器时报错一开始我的语句是这样的dockerpullwurstmeister/zookeeperdockerrun-d--restart=always--log-driverjson-file--log-optmax-size=100m--log-optmax-file=2--namezookeeper-p2181:2181-v/etc/localtime:/et......
  • vue3 let,var,const区别
    在Vue3中,let、var和const都是用于声明变量的关键字区别:   var:在JavaScript中,var是声明变量的最常用的关键字。var声明的变量的作用域是函数级的,如果在函数内部声明的变量,其作用域将限制在函数体内部。如果在函数外部声明的变量,则其作用域将是全局的。   let:let也用于声明......
  • 编译时process_begin: CreateProcess | mutex/condition_variable 报错的一种解决办法
    系统:win10目的:想跑一下wisper.cpp前置操作:把该项目git下来后打算make,一make就报错注意,图里其实有两种错误,第一种是process_begin:CreateProcess(NULL,xxx)failed,第二种是error:'thread'isnotamemberof'std'.第二种错误是因为mingw不支持thread库,但是官方有给过补丁,可......
  • R语言时变向量自回归(TV-VAR)模型分析时间序列和可视化|附代码数据
    全文链接:http://tecdat.cn/?p=22350 最近我们被客户要求撰写关于时变向量自回归(TV-VAR)模型的研究报告,包括一些图形和统计输出。在心理学研究中,个人主体的模型正变得越来越流行。原因之一是很难从人之间的数据推断出个人过程另一个原因是,由于移动设备无处不在,从个人获得的时间......
  • niushop单商户v5多店版升级到v5.3后商业插件报错问题综合解决方式variable type error
    大家可能像我一样遇到一个奇葩问题就是,niushop系统从5.2内核升级到5.3后所有的插件都不能正常使用了,特别是第三方的商业插件,官方给的说法是要重新适配,这个需要较多时间,不过我总结了一下自己就可以修复比如以下插件会遇到这种问题!niushop支付宝小程序插件niushop阿里云插件niushop......