首页 > 其他分享 >R语言基于ARCH模型股价波动率建模分析|附代码数据

R语言基于ARCH模型股价波动率建模分析|附代码数据

时间:2024-02-19 18:12:36浏览次数:28  
标签:2t rt ## 代码 建模 序列 ARCH 模型

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

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

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

引言

金融中一个重要度量是与资产相关的风险,而资产波动率是最常用的风险度量。然而,资产波动率的类型有多种。波动率不能直接观测的性质在波动率研究和建模中有非常重要的含义。

数据选取

笔者选取1973年1月到2009年12月,英特尔公司(INTC)股票的每月收盘价数据,同时也收集同期的S&P指数数据,前六个数据样本如下所列:

   
## date intc sp

## 1 19730131 0.010050 -0.017111

## 2 19730228 -0.139303 -0.037490

## 3 19730330 0.069364 -0.001433

## 4 19730430 0.086486 -0.040800

## 5 19730531 -0.104478 -0.018884

## 6 19730629 0.133333 -0.006575

模型分析

①模型的结构

用rtrt表示某项资产在tt时刻的对数收益率。波动率研究的基本思想是,序列rtrt是前后不相关的或低阶前后相关的,但是序列不是独立的。作为说明,考虑Intel公司股票从1973年1月到2009年12月的月对数收益率,共有444个观察值,下图给出了该对数收益率的时序图。

收益率序列看起来是平稳且随机的。接下来,我们给出其样本自相关函数(ACF),同时也作出对数收益率的绝对值序列|rt||rt|的样本自相关函数。

对数收益率序列的ACF显示除了在滞后为7和14时有较小相关性之外,没有显著的序列前后相关性,并且序列rtrt的Ljung-Box统计量表明 18.6760744,相应的p值为 0.0966514.而对数收益率的绝对值序列|rt||rt|显示具有序列相关性,并且序列|rt||rt|的Ljung-Box统计量表明 124.9064353,相应的p值接近于 0。因此,Intel公司股票月对数收益率序列是前后不相关的,但不是独立的。我们用ARCH模型去刻画收益率序列的这种不独立性。

为了把波动率模型放在一个适当的框架中,考虑给定Ft−1Ft−1时rtrt的条件均值和条件方差,即:

μt=E(rt|Ft−1),σ2t=Var(rt|Ft−1)=E[(rt−μt)2|Ft−1]μt=E(rt|Ft−1),σt2=Var(rt|Ft−1)=E[(rt−μt)2|Ft−1]

其中,Ft−1Ft−1是在t−1t−1时刻已知的信息集。样本公司的股票收益率序列rtrt即使有前后相关性也很弱。我们假定rtrt服从简单的ARMA(p,q)模型,Ljung-Box统计量表明Intel股票的月对数收益率序列没有序列相关性。我们对对数收益率序列进行单样本检验,确认序列rtrt的均值显著不等于0.

   
## $statistic

## t

## 2.37881

##

## $p.value

## [1] 0.01779151

更具体地说,检验H0:μ=0和Ha:μ≠0H0:μ=0和Ha:μ≠0的t比为2.3788,p值为0.01779.因此,对Intel公司股票的对数收益率,有rt=μt+εtrt=μt+εt,其中μt=μμt=μ为常数。

②ARCH效应的检验

对于Intel公司股票的月对数收益率序列,均值方程仅仅由一个常数构成。

记εt=rt−μtεt=rt−μt为均值方程的残差。平方序列ε2tεt2可以用来检验条件异方差性,即ARCH效应,我们采用Mcleod和Li(1983)提出的将Ljung-Box统计量QQ(m)Q(m)应用于序列ε2tεt2,该检验统计量的原假设是序列ε2tεt2前m个间隔的ACF值都为0.

ε2t=α0+α1ε2t−1+⋅⋅⋅+αmε2t−m+et,t=m+1,⋅⋅⋅,Tεt2=α0+α1εt−12+···+αmεt−m2+et,t=m+1,···,T

ε2tεt2的Ljung-Box统计量Q(12)Q(12)=92.938884,其p值接近于0,因此表明有很强的ARCH效应。也可以用Engle的拉格朗日乘子法(m=12),archTest检验结果显示,F的值为4.978,相应的p值接近于0,进一步表明Intel公司股票对数收益率有很强的 ARCH效应。

③ARCH模型的建立

ARCH模型的基本思想是:1)资产收益率的扰动序列εtεt是前后不相关的,但不是独立的;2)εtεt的不独立性可以用其滞后值的简单二次函数来表述。ARCH(m)模型假定

εt=σtϵt,σ2t=α0+α1ε2t−1+⋅⋅⋅+αmε2t−mεt=σtϵt,σt2=α0+α1εt−12+···+αmεt−m2

,其中ϵtϵt是均值为0、方差为1的独立同分布(iid)随机变量序列,且α0>0α0>0,对i>0i>0有αi≥0αi≥0.系数αiαi必须满足一些正则性条件以保证εtεt的无条件方差是有限的。我们假定ϵtϵt服从标准正态分布。

上图给出了均值调整对数收益率的平方序列的样本ACF和PACF.从PACF图中,我们可以看出在间隔为1、2、3和11上有显著的相关性。为了保持模型简单,我们对波动率建立一个ARCH(3)模型。相应的,为Intel公司股票的月对数收益率建立一个如下模型:

rt=μ+εt,εt=σtϵt,σ2t=α0+α1ε2t−1+α2ε2t−2+α3ε2t−3rt=μ+εt,εt=σtϵt,σt2=α0+α1εt−12+α2εt−22+α3εt−32

假定ϵtϵt是独立同分布的标准正态序列。

我们得到的拟合模型为:rt=0.0126+εt,σ2t=0.0104+0.2329ε2t−1+0.0751ε2t−2+0.0520ε2t−3rt=0.0126+εt,σt2=0.0104+0.2329εt−12+0.0751εt−22+0.0520εt−32并且,各个参数估计值的标准误差分别是0.0055、0.0012、0.115、0.0473和0.0451,统计报告见附录。

可见,α2α2和α3α3的估计值在5%的水平下不是统计显著的。我们去掉两个不显著参数,简化模型为ARCH(1) ,重新得出如下拟合模型rt=0.0131+εt,σ2t=0.0110+0.3750ε2t−1rt=0.0131+εt,σt2=0.0110+0.3750εt−12其中,各个参数估计值的标准误差分别是0.0053、0.0021和0.1126,并且所以估计都是高度显著的,统计报告见附录。

④ARCH模型的思考

我们对于Intel公司股票波动率建立的上述模型是不是就能充分地描述给定数据的条件异方差性了呢?

以下,我们对残差进行标准化处理,得到序列{εt^εt^},{εt^εt^}的样本ACF和样本PACF图如下所示:

PACF图表明在标准化残差的平方序列的高阶间隔上仍然有序列相关性。{εt^εt^}的Ljung-Box统计量为Q(10)=16.58Q(10)=16.58,p=0.08p=0.08;Q(20)=38.81Q(20)=38.81,p=0.007p=0.007.因此,如果只是关注低阶的模型,那么在5%水平下,以上所求的ARCH(1)模型就能充分地描述给定数据的条件异方差。


最受欢迎的见解

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

2.R语言中基于混合数据抽样(MIDAS)回归的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交易策略

 

标签:2t,rt,##,代码,建模,序列,ARCH,模型
From: https://www.cnblogs.com/tecdat/p/18021695

相关文章

  • day29 回溯算法part5 代码随想录算法训练营 47. 全排列 II
    题目:47.全排列II我的感悟:用了一层判断,感觉也挺好用的理解难点:老师的写法,主要是理解used【i】和used[i-1]的概念我说怎么参考答案看不懂呢,它把两个判断放在一起写了。我的代码:用了一层判断classSolution:defpermuteUnique(self,nums:List[int])->List[Lis......
  • 代码随想录算法训练营第二十二天|235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树
    二叉搜索树的最近公共祖先 题目链接:235.二叉搜索树的最近公共祖先-力扣(LeetCode)思路:只要利用二叉搜索树特性,只要当前节点的值位于要求的两个节点之间,就必定是我们要找的节点。最简单的一集。classSolution{public:TreeNode*lowestCommonAncestor(TreeNode*root,......
  • 常规代码性能优化的总结
    今天同事发开中遇到了一个代码性能优化的问题,原本需求是:从一个数据库中查询某个表数据,存放到datatable中,然后遍历datatable,看这些数据在另一个数据库的表中是否存在,存在的话就要更新,不存在就要插入。就这个需求本身来说很简单,但是随着数据量的增大,之前通过循环遍历的方......
  • 晚上调代码时写对拍程序之——为了不手写平衡树而乱搞的可支持随机访问、快速插入、快
    前言由于需要一个可支持随机访问、快速插入、快速删除的数据结构,但是我除了平衡树实在是想不到别的东西了,于是就乱搞出了一个这样的东西——abstract数组。但是,这玩意好像码量和平衡树差不多......不过!我认为她还是有优点的:相比起平衡树,她应该更不容易出锅?总之,不管怎么样,还是......
  • 代码随想录算法训练营第二十二天 | 450.删除二叉搜索树中的节点, 701.二叉搜索树中的
     450.删除二叉搜索树中的节点 已解答中等 相关标签相关企业 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点......
  • day29 回溯算法part5 代码随想录算法训练营 46. 全排列
    题目:46.全排列我的感悟:看不下去视频,可以先看文字讲解。看答案。带着疑问去看视频,效果会更好。加油!理解难点:排列,不用start_index了借助used=1来过滤掉[1,1,1]这种情况。如果不加ifused[i]==1,continue就会出现重复的。如下图: 代码示例:classSolution:d......
  • css样式相关代码记录
    element样式穿透:::v-deepposition属性值有static、relative、absolute、fixed、sticky。static:该关键字指定元素使用正常的布局行为,即元素在文档常规流中当前的布局位置。relative:该关键字下,元素先放置在未添加定位时的位置,再在不改变页面布局的前提下调整元素位置(因此会......
  • 关于代码性能优化的总结
    今天同事发开中遇到了一个代码性能优化的问题,原本需求是:从一个数据库中查询某个表数据,存放到datatable中,然后遍历datatable,看这些数据在另一个数据库的表中是否存在,存在的话就要更新,不存在就要插入。就这个需求本身来说很简单,但是随着数据量的增大,之前通过循环遍历的方式......
  • JimuReport积木报表 v1.7.0 变革版本发布,低代码报表设计工具
    项目介绍一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等!Web版报表设计器,类似于excel操作风格,通过拖拽完成报表设计。秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节......
  • Netlify、Vercel 和 Digital Ocean代码托管平台介绍
    Netlify、Vercel和DigitalOcean都是用于部署Web应用程序的平台,它们各有特点和适用场景:Netlify:Netlify是一个现代化的静态站点部署平台,它提供了简单易用的界面和强大的功能,特别适合部署静态网站、单页面应用和Jamstack应用。Netlify提供了自动构建、部署、CDN加速......