前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言GARCH族模型:正态分布、t、GED分布EGARCH、TGARCH的VaR分析股票指数|附代码数据

R语言GARCH族模型:正态分布、t、GED分布EGARCH、TGARCH的VaR分析股票指数|附代码数据

原创
作者头像
拓端
发布2023-03-15 23:50:05
5130
发布2023-03-15 23:50:05
举报
文章被收录于专栏:拓端tecdat拓端tecdat

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

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

如何构建合适的模型以恰当的方法对风险进行测量是当前金融研究领域的一个热门话题

VaR方法作为当前业内比较流行的测量金融风险的方法,具有简洁,明了的特点,而且相对于方差来讲,更多的将投资人的损失作为风险具有更好的合理性。

我们和一位客户讨论如何在R软件中处理GARCH族模型。

数据的选取

本文选取Wind资讯发布的股票型券商理财指数作为数据处理对象。选取的时间期间为2011年1月4日至2015年11月24日,共1187个交易日。该指数基日为2007年12月31日,基点为1000点。

图片
图片

收益率的计算

采用对数收益率对指数收盘点位进行计算,表达式为

图片
图片

记为序列 。由图观察可知,该收益率序列存在波动聚集现象。

代码语言:javascript
复制
clpr<-stock$Clsprc
yield<-diff(log(clpr))
ts.plot(yield)
图片
图片

基本特征分析

对序列 进行基本统计分析,结果如表所示:

代码语言:javascript
复制
summary(yield)
sd(yield)
var(yield)

表 指数日收益率基本统计表****

Min.

1st Qu.

Median

Mean

3rd Qu.

Max.

Sd

skewness'

kurtosis

-0.03517

-0.00389

0.0003749

0.0001963

0.00473

0.03348

0.008163353

-0.4018462

2.169439

由表可知,收益率序列 的最小值为-0.03517,最大值为0.03348,平均值为0.0001963,标准差为0.008163353。偏度为-0.4018462,表现为右偏。峰度为2.169439,该分布比正态分布更陡峭。

1、正态性检验

对指数的日收益率序列进行正态性检验。检验方法采用Jarque-Bera统计量。检验结果显示Jarque-Bera统计量为261.3839,P值接近0,拒绝对数收益率服从正态分布的原假设,表明序列为非正态分布。

表 Jarque-Bera检验结果

检验方法

统计量

P值

Jarque-Bera

261.3839

< 2.2e-16

为了进一步探究序列 的分布形态,对样本数据作直方图、QQ图。由图可见,该收益率序列的尾部更长更厚,且其分布存在明显的不对称的现象,为非正态分布。

图片
图片
图片
图片

2、自相关性检验

对指数的日收益率序列的自相关性进行检验。检验方法采用Ljung-Box检验。表中LB2(12)指滞后期为12的收益率平方的Ljung-Box统计量,该统计量在无序列相关的零假设下,服从自由度为12的 分布。具体检验结果如下:收益率平方的Ljung-Box统计量为34.1853,P值为0.0006306,拒绝无自相关的零假设,表明收益率的平方存在自相关现象。

表 Ljung-Box检验结果

检验方法

统计量

P值

LB2(12)

34.1853

0.0006306

为了进一步探究序列的自相关性,对序列作ACF、PACF图。由图可见,该收益率序列存在自相关现象。

图片
图片
图片
图片

3、异方差性检验

对指数的日收益率序列进行异方差性检验。检验方法采用ARCH-LM检验。表中LM(12)指ARCH效应的拉格朗日乘数检验,在没有ARCH效应的零假设下,统计量服从自由度为12的 分布。具体检验结果如下:LM统计量为170.9818,P值接近0,故拒绝无ARCH效应的零假设,表明收益率序列存在ARCH效应。

表 ARCH-LM检验结果

检验方法

统计量

P值

LM(12)

170.9818

< 2.2e-16

4、平稳性检验

在时间序列模型中,序列的平稳性会直接影响到模型的拟合效果,非平稳的序列容易产生谬误回归(Spurious Regression)。本节将采用 ADF 检验来对收益率序列进行单位根检验。检验结果显示Dickey –Fuller值为-9.7732(滞后10阶),P值小于0.01,故拒绝存在单位根的原假设,认为该收益率序列是平稳的。


表 ADF检验结果

检验方法

统计量

P值

ADF

-9.7732

<0.01


综上,收益率序列存在明显的尖峰厚尾效应,JB检验同样否认了收益率服从正态分布的假设。LM检验表明收益率存在ARCH效应,而LB检验表明收益率的平方存在自相关现象,因此可以采用条件异方差模型来分析收益率序列的波动特性

GARCH族模型的建立

本文将分别采用基于正态分布、t分布、广义误差分布(GED)、偏态t分布(ST)、偏态广义误差分布(SGED) 的GARCH(1,1)、EGARCH、TGARCH来建模。

相关视频

**

拓端

,赞21

**

拓端

,赞11

**

拓端

,赞8

**

拓端

,赞14

表中,c为收益率的均值, 为方差方程的常数项, 为方差方程的ARCH项系数, 为GARCH项系数, 反映杠杆效应的大小。参数 为概率分布中的参数,其中 控制尖峰高度和尾部厚度, 控制偏斜度。

GARCH(1,1)模型

GARCH(1,1)模型表示如下:

代码语言:javascript
复制
spec<-ugarchspec(variance.model=list(garchOrder=c(1,1)),
       mean.model=list(armaOrder=c(0,0)))
fit <- ugarchfit(spec = spec, data = yield)

ariance.model=list(garchOrder=c(1,1)),
       mean.model=list(armaOrder=c(0,0)),distribution.model = "std")
图片
图片

表 收益率指数 GARCH 模型估计结果*

正态分布

t分布

GED

偏t分布

SGED

c

0.000264( 0.21277)

0.000342 ( 0.077829)

0.000342 (0.040020)

0.000299(0.161218)

0.000230 (0.587094)

0.000001 ( 0.14473)

0.000001  ( 0.257057)

0.000001(0.441759)

0.000001(0.259532)

0.000001(0.456113)

0.048706( 0.00000) ***

0.054123 ( 0.000001) ***

0.050726 (0.002247) ***

0.053698(0.000001) ***

0.050853(0.00353) ***

**

0.927184( 0.00000) ***

0.933160(0.00000) ***

0.931267(0.000000) ***

0.933230(0.000000) ***

0.930511  (0.000000) ***

0.981867(0.000000) ***

0.939087(0.000000) ***

5.219963(0.00000) ***

1.201313(0.00000) ***

5.243745(0.000000) ***

1.202264 (0.000000) ***

LOG(L)

4098.099

4133.571

4138.72

4133.688

4139.112

LB2(1)

0.0005385

0.03154

0.01327

0.02633

0.01035

LB2(5)

0.7282074

1.00717

0.88424

0.97089

0.83074

LB2(9)

1.2003692

1.63025

1.43485

1.58488

1.36785

注:括号中是P值。***表示0.1%置信水平下统计显著;**表示在 1%置信水平下统计显著;*表示5%水平下统计显著。

对GARCH(1,1)模型来说,无论收益率残差服从哪种分布,其方差方程中ARCH项和GARCH项系数均高度显著,然而均值方程和方差方程中的的常数项均不显著。

EGARCH(1,1)模型

EGARCH是从GARCH衍生出的模型,可用于解释“杠杆效应”。“杠杆效应”是指金融资产收益率的涨和跌对未来波动性的影响是不同的。

代码语言:javascript
复制
chspec(variance.model=list(model="eGARCH", garchOrder=c(1,1)),
       mean.model=list(armaOrder=c(0,0)))

收益率指数 EGARCH 模型估计结果

正态分布

t分布

GED

偏t分布

SGED

c

0.000271(0.075278)

0.000336( 0.079723)

0.000340( 0.016498)

0.000271(0.12507)

0.000199 ( 0.14978)

-0.206804(0.000000) ***

-0.157944(0.000000) ***

-0.184483(0.000000) ***

-0.160675(0.000000) ***

-0.190357(0.00000) ***

0.001715(0.862698)

-0.013118 ( 0.388489)

-0.007304( 0.603938)

-0.012933(0.393570)

-0.007622 (0.41512)

**

0.978191(0.000000) ***

0.983721(0.000000) ***

0.981159(0.000000) ***

0.983429(0.000000) ***

0.980540(0.00000) ***

0.107504( 0.001149)***

0.128684(0.000000) ***

0.118786(0.001145)**

0.128607(0.000001)***

0.119496(0.00000) ***

0.978059(0.000000) ***

0.970479(0.00000) ***

4.999931(0.000000) ***

1.185703(0.000000) ***

5.025099(0.000000) ***

1.186277(0.00000) ***

LOG(L)

4092.934

4131.264

4136.163

4131.438

4136.691

LB2(1)

0.1871

0.00369

0.03273

0.004377

0.03288

LB2(5)

0.8244

0.93644

0.83619

0.898516

0.76626

LB2(9)

1.4308

1.55934

1.41608

1.511597

1.32613

注:括号中是P值。***表示0.1%置信水平下统计显著;**表示在 1%置信水平下统计显著;*表示5%水平下统计显著。

对EGARCH(1,1)模型来说,无论收益率残差服从哪种分布,其方差方程中常数项和GARCH项系数均高度显著,然而均值方程和方差方程中的的ARCH项系数均不显著。

GJR-GARCH模型

GJR-GARCH模型即是在GARCH模型的基础上考虑到杠杆效应,引入一个虚拟变量来表示正负冲击对 的影响。

代码语言:javascript
复制
ariance.model=list(model="gjrGARCH", garchOrder=c(1,1)),
	mean.model=list(armaOrder=c(0,0)),distribution.model = "std")

收益率指数 GJR- GARCH 模型估计结果

正态分布

t分布

GED

偏t分布

SGED

c

0.000275( 0.198829)

0.000335 ( 0.084013)

0.000338( 0.040523)*

0.000292(0.17233)

0.000221 (0.540614)

0.000001( 0.171795)

0.000001 (0.298628)

0.000001(0.000000) ***

0.000001( 0.30375)

0.000001(0.590270)

0.051272( 0.000072)***

0.051272 (0.000072)***

0.046304(0.012649) *

0.045985(0.00000)***

0.046440 (0.007732)**

**

0.928798(0.000000) ***

0.928798(0.000000) ***

0.927762 (0.000000) ***

0.929132(0.00000) ***

0.928254  (0.000000) ***

-0.005443( 0.702778)

-0.005443(0.702778)

0.010575(0.493464)

0.018174(0.32446)

0.010036(0.542627)

0.983235(0.00000) ***

0.975509(0.000000) ***

4.999931(0.000000) ***

1.197353(0.000000) ***

5.148342(0.00000) ***

1.199348 (0.000000) ***

LOG(L)

4098.144

4133.955

4138.849

4134.063

4139.244

LB2(1)

0.00032

0.06294

0.03472

0.05974

0.02502

LB2(5)

0.68873

1.14346

0.98759

1.11792

0.91801

LB2(9)

1.15402

1.81742

1.56472

1.78469

1.48424

注:括号中是P值。***表示0.1%置信水平下统计显著;**表示在 1%置信水平下统计显著;*表示5%水平下统计显著。

对GJR-GARCH(1,1)模型来说, 无论收益率残差服从哪种分布,其杠杆系数 都是不显著的。但是就其他参数而言,GED分布下,参数拟合都是显著的。方差方程中ARCH项和GARCH项系数均高度显著,然而均值方程和方差方程中的的常数项均不显著。通过对比对数似然函数值,发现残差服从GED分布和SGED分布时,模型拟合效果要优于正态分布、t分布和偏t分布。另外,五种分布条件下, 均接近1,这说明尽管收益率的波动会逐步衰减,但是持续的时间将会非常长。最后,LB2统计量显示模型的标准化残差平方均不再具有异方差现象,且在统计上都是显著的。

APARCH模型

APARCH(1,1)模型波动性方程为:

代码语言:javascript
复制
variance.model=list(model="apARCH", garchOrder=c(1,1)),
图片
图片

收益率指数 APARCH 模型估计结果

正态分布

t分布

GED

偏t分布

SGED

c

0.000301( 0.15463)

0.000349 (0.071965)

0.000349( 0.049846)*

0.000338 (0.108480)

0.000239 (0.379013)

0.000000(0.92767)

0.000000(0.979064)

0.000000(0.972073)

0.000000(0.984476)

0.000000(0.992160)

0.036457(0.00021)***

0.036235(0.061548)

0.036665(0.123664)

0.038866(0.179902)

0.036743 (0.540439)

**

0.914738(0.00000) ***

0.920788(0.000000) ***

0.917647(0.000000) ***

0.920930(0.000000) ***

0.919184 (0.000000) ***

0.001559( 0.98256)

0.076905(0.416691)

0.048123(0.624721)

0.063356(0.277636)

0.019934 (0.835479)

2.770787(0.00000) ***

2.835321(0.000000) ***

2.732345(0.000000) ***

2.774741(0.000000) ***

2.794404(0.000000) ***

0.991283 (0.000000) ***

0.970652(0.000000) ***

5.534190(0.000017) ***

1.207995(0.000000) ***

5.400260  (0.000001) ***

1.213429(0.000687) ***

LOG(L)

4100.315

4134.174

4139.32

4134.308

4139.746

LB2(1)

0.07729

0.1613

0.1208

0.1772

0.09563

LB2(5)

0.94386

1.2998

1.1247

1.3636

1.05785

LB2(9)

1.45195

2.0242

1.7278

2.1042

1.64646

注:括号中是P值。***表示0.1%置信水平下统计显著;**表示在 1%置信水平下统计显著;*表示5%水平下统计显著。

对APARCH (1,1)模型来说, 除了方差方程 和 显著外,其他系数基本不显著。通过对比对数似然函数值,发现残差服从GED分布和SGED分布时,模型拟合效果要优于正态分布、t分布和偏t分布。LB2统计量显示模型的标准化残差平方均不再具有异方差现象,且在统计上都是显著的。

计算VaR

代码语言:javascript
复制
plotMSFT.garch11.fitwhich=2
图片
图片

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

01

图片
图片

02

图片
图片

03

图片
图片

04

图片
图片

序列预测

代码语言:javascript
复制
plotMSFT.garch11.boot
图片
图片

GARCH11滚动预测

代码语言:javascript
复制
MSFT.garch11.roll =spec y  
  
  
classMSFT.garch11.roll

## [1] "uGARCHroll"  
## attr"package"  
## [1] "rugarch"

## VaR Backtest Report  
## ===========================================  
## Model:               eGARCH-norm  
## Backtest Length: 1000  
## Data:                 
##  
## ==========================================  
## alpha:               1%  
## Expected Exceed: 10  
## Actual VaR Exceed:   50  
## Actual %:            5%  
##  
## Unconditional Coverage Kupiec  
## Null-Hypothesis: Correct Exceedances  
## LR.uc Statistic: 82.582  
## LR.uc Critical:      3.841  
## LR.uc p-value:       0  
## Reject Null:     YES  
##  
## Conditional Coverage Christoffersen  
## Null-Hypothesis: Correct Exceedances and  
##                  Independence of Failures  
## LR.cc Statistic: 118.726  
## LR.cc Critical:      5.991  
## LR.cc p-value:       0  
## Reject Null:     YES
图片
图片

图片
图片

本文选自《R语言GARCH族模型:正态分布、t、GED分布EGARCH、TGARCH的VaR分析股票指数》。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 全文链接:http://tecdat.cn/?p=31023
    • 数据的选取
      • 收益率的计算
        • 基本特征分析
          • 1、正态性检验
            • 2、自相关性检验
              • 3、异方差性检验
                • 4、平稳性检验
                  • GARCH族模型的建立
                    • GARCH(1,1)模型
                    • EGARCH(1,1)模型
                    • GJR-GARCH模型
                    • APARCH模型
                • 计算VaR
                • 序列预测
                • GARCH11滚动预测
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档