全文链接:http://tecdat.cn/?p=31717

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

分析师:Ke Liu

随着金融市场全球化的发展,金融产品逐渐受到越来越多的关注,而金融产品的风险度量成为投资者最关心的问题。金融风险是指由于经济活动的不确定性、市场环境的变化、决策的失误等因素的影响,导致实际回报与预期回报出现偏离的可能性。

VaR通过建立系统分析方法定量化分析风险,可以评估复杂的金融产品、反映风险的敏感,在合理的范围内规避风险,是量化市场风险行之有效的工具。文章将帮助客户采用风险价值VaR模型定量刻画风险,研究符合模型特点的求解方法,基于VaR模型对股价指数时间序列进行建模分析,科学评估风险的预期损失,避免由于高估或低估风险而带来投资的决策失误,从而对制定政策、维护市场稳定、监管金融机构等方面提供了必要保证。

解决方案

任务/目标

根据股票价格指数时间序列数据进行建模分析,对金融市场的波动进行分解与预测,比较不同估算方法的适用程度。

数据的处理与检验

以上海证券股价综合指数作为总体研究目标,选取2015年1月至2020年1月的每日收盘价序列作为样本数据集,共1220个价格数据构成金融时间序列,数据获取来源为上海证券交易所网站。

由于股票价格的非负性,我们采用取对数的方法处理上证综指的收盘价Ct,然后进行一阶差分,得到收益率序列Yt,再进行描述性分析与检验,计算公式如下:

基于 MCMC-GARCH 模型估计结果及检验

在本次实证分析中,利用 MCMC算法,随机生成两条马尔科夫链,分别对两条链进行抽样,以确保参数是从平稳分布中进行估计。

MCMC算法下所要拟合的GARCH(1,1)模型为:

利用贝叶斯MCMC 方法对 GARCH(1,1)模型进行未知参数估计。在随机抽样过程中,分别模拟了两条马尔科夫链。首先在R中进行迭代3000次,使用方差比法判断收敛效果,各个参数的方差比为,各个方差比均约为1,,说明收敛情况良好。迭代轨迹图如图所示:

利用上证综指收益率序列的后半部分数据对正态分布下MCMC-GARCH(1,1)模型的参数估计结果如下:

表 基于正态分布的MCMC--GARCH(1,1)模型系数的估计

  估计值 标准误 95%置信区间
α0 0.03338 0.01792 (0.01101,0.08155)
α1 0.09913 0.03522 (0.04546,0.18589)
β1 0.89197 0.03467 (0.81061,0.94656)

即MCMC-GARCH(1,1)模型的方差方程为:

分析比较

利用上证综指序列的后半部分样本数据分别对ML与MCMC方法的拟合误差进行度量,各指标的值如下:

ML与MCMC方法在样本期内的拟合误差度量指标

  MSE1 MSE2 MAE1 MAE2 QLIKE R²LN
ML 9.234095 5657.991 1.123257 11.74841 9.69528 0.5750861
MCMC 8.707486 5628.328 1.110572 11.85487 5.852641 -0.01556125

从上表可以看出,基于贝叶斯框架下MCMC算法得到各项拟合误差度量指标要小于极大似然估计方法得到的误差度量指标,说明MCMC-GARCH模型拟合效果要优于ML-GARCH模型得到的拟合结果,接下来对上证综指收益率标准化残差的自相关图,可以从图看出,标准化后的绝大部分残差序列值在置信区间内,对比图可以判断,MCMC-GARCH模型将样本序列中的异方差信息较完整的提取了出来,说明基于MCMC估计的GARCH模型效果更优。

MCMC-GARCH(1,1)模型平方残差自相关图

VaR 模型的建立与预测

又前文已知VaR模型的基本原理,记:

由上文所得,上证综指收益率序列后半部分数据的均值为0.005626654,所以得VaR模型为:

因此在ML和MCMC下分别为:

取上证综指收益率序列的后半部分数据对波动率序列进行预测,分别用ML-GARCH和MCMC-GARCH计算VaR,在95%的置信水平下得到如下值:

基于ML和MCMC方法的VaR值

  中位数 均值 标准差
ML 1.7016 1.9666 1.319663
MCMC 1.8348 2.3139 1.249384

通过上表可知,基于ML-GARCH和MCMC-GARCH计算的VaR值有一定的差别,基于MCMC-GARCH计算的VaR值更高、标准差更低。

两种方法拟合的时序图如下:

基于ML和MCMC方法的VaR时序图

关于作者

在此对Ke Liu对本文所作的贡献表示诚挚感谢,她毕业于中南财经政法大学经济统计学专业,擅长金融时间序列数据分析与预测等。


最受欢迎的见解

1.用R语言模拟混合制排队随机服务排队系统

2.R语言中使用排队论预测等待时间

3.R语言中实现马尔可夫链蒙特卡罗MCMC模型

4.R语言中的马尔科夫机制转换(Markov regime switching)模型

5.python中使用马尔可夫决策过程(MDP)动态编程来解决最短路径强化学习问题

6.用R语言模拟混合制排队随机服务排队系统

7.Python基于粒子群优化的投资组合优化

8.R语言几何布朗运动 GBM模拟股票价格优化建立期权定价概率加权收益曲线可视化

9.R语言进行支持向量机回归SVR和网格搜索超参数优化

R语言MCMC-GARCH、风险价值VaR模型股价波动分析上证指数时间序列的更多相关文章

  1. 【机器学习与R语言】7-回归树和模型树

    目录 1.理解回归树和模型树 2.回归树和模型树应用示例 1)收集数据 2)探索和准备数据 3)训练数据 4)评估模型 5)提高模型性能 1.理解回归树和模型树 决策树用于数值预测: 回归树:基于到达 ...

  2. R语言实现SOM(自组织映射)模型(三个函数包+代码)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- SOM自组织映射神经网络模型 的R语言实现 笔 ...

  3. R语言实战(五)方差分析与功效分析

    本文对应<R语言实战>第9章:方差分析:第10章:功效分析 ================================================================ ...

  4. R语言和数据分析十大:购物篮分析

    提到数据挖掘,我们的第一个反应是之前的啤酒和尿布的故事听说过,这个故事是一个典型的数据挖掘关联规则.篮分析的传统线性回归之间的主要差别的差别,对于离散数据的相关性分析: 常见的关联规则: 关联规则:牛 ...

  5. R语言学习-(金融数据获取和简单的分析)

    利用R语言中的quantmod包和fBasics对股票数据的获取和简要的分析, 通过获取的数据进行典型图像绘制,使用JB正态性检验来检验是否服从于正态分布. 前提概要:quantmod 包默认是访问 ...

  6. 【机器学习与R语言】13- 如何提高模型的性能?

    目录 1.调整模型参数来提高性能 1.1 创建简单的调整模型 2.2 定制调整参数 2.使用元学习来提高性能 2.1 集成学习(元学习)概述 2.2 bagging 2.3 boosting 2.4 ...

  7. 【机器学习与R语言】12- 如何评估模型的性能?

    目录 1.评估分类方法的性能 1.1 混淆矩阵 1.2 其他评价指标 1)Kappa统计量 2)灵敏度与特异性 3)精确度与回溯精确度 4)F度量 1.3 性能权衡可视化(ROC曲线) 2.评估未来的 ...

  8. 【转】R语言知识体系概览

    摘要:R语言的知识体系并非语法这么简单,如果都不了R的全貌,何谈学好R语言呢.本文将展示介绍R语言的知识体系结构,并告诉读者如何才能高效地学习R语言. 最近遇到很多的程序员都想转行到数据分析,于是就开 ...

  9. R语言中文社区历史文章整理(类型篇)

    R语言中文社区历史文章整理(类型篇)   R包: R语言交互式绘制杭州市地图:leafletCN包简介 clickpaste包介绍 igraph包快速上手 jiebaR,从入门到喜欢 Catterpl ...

  10. 大数据时代的精准数据挖掘——使用R语言

    老师简介: Gino老师,即将步入不惑之年,早年获得名校数学与应用数学专业学士和统计学专业硕士,有海外学习和工作的经历,近二十年来一直进行着数据分析的理论和实践,数学.统计和计算机功底强悍. 曾在某一 ...

随机推荐

  1. js中的for循环,循环次数会多出一次。当循环到最后一个的时候,循环还会继续,并且此时i就变成remove?

    for (i in points) 改成 for(var i = 0; i < points,length; i++)

  2. Canvas:绘制圆形

    函数 arc(x, y, radius, startAngle, endAngle, counterclockwise) 参数名 描述 x.y 圆心坐标轴 radius 圆的半径 startAngle ...

  3. 让启动的jar包能打断点

    java  -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar rbpsems-web-2.0.0-SNAP ...

  4. The table‘xxxx’is full

    df -h 查看磁盘 设置 back_log = 50 接受队列,对于没建立 tcp 连接的请求队列放入缓存中,队列大小为 back_log,受限制与 OS 参数,试图设定 back_log 高于你的 ...

  5. Qt控件installEventFilter后不显示了

    原因是在eventFilter函数内return true了,就不会在执行paint事件了,将return true改为return false即可.

  6. leecode64. 最小路径和(动态规划)

    64. 最小路径和 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例 1: 输入:gri ...

  7. postgresql数据库插入和读取图片

    postgresql插入和读取图片 postgresql存储图片需要二进制类型bytea,创建一张测试表: postgres=# create table test_image(img bytea); ...

  8. 最后的 SPRING

    其核心JAR包spring-web-5.2.0.RELEASE.jar和spring-core-5.2.0.RELEASE.jar的大小均为1.4MB左右 基于工厂模式实现对象的创建 添加了国际化.事 ...

  9. js,php中的面向对象

    面向对象 js中的面向对象: 面向对象(OOP):通过函数封装得到的一个类 1.类的本质还是函数 每个类(函数)天生有一个prototype的属性,这个prototype又是一个对象,这个对象里有个c ...

  10. C# 生成二维码方法(QRCoder)

    前言 二维码很多地方都有使用到.如果是静态的二维码还是比较好处理的,通过在线工具就可以直接生成一张二维码图片,比如:草料二维码. 但有的时候是需要动态生成的(根据动态数据生成),这个使用在线就工具就无 ...