美文网首页
24分析股票指数的GARCH效应

24分析股票指数的GARCH效应

作者: Jachin111 | 来源:发表于2020-12-26 16:42 被阅读0次

GARCH是一种用过去的方差以及其的预测值来预测未来方差的自回归条件异方差时间序列模型。其中异方差指方差随时间变化而变化,即具有异方差性;条件性表示了对过去临近观测信息的依赖;自回归则描述了预测值与过去观测值联系的反馈机制。

image.png
该方程可以求出模型的条件期望,投资者投资者在交易中所得到的信息依赖于过去时刻的收益以及过去时刻预期收益和实际收益间的误差;根据该方程也可描述模型的条件方差,它不仅是滞后随机扰动项平方的线性函数也是滞后项条件方差的线性函数,表明了过去时刻的波动对未来价格波动有着正向缓解的影响,从而模拟了波动聚集性。
image.png
限制条件是冲击过程{ht}存在有限方差的充分必要条件,其值大小反映了序列波动的持续性,即序列在过去时刻波动的特征在当前时刻被继续波动的程度。
image.png
保证了条件方差序列是非负的。
计算对数收益率
金融数据分析一般研究的是资产收益率,而不是资产的价格。资产收益率序列比一般的价格序列更容易处理,更具有研究意义。而资产收益率也有很多种定义,本次实验使用对数收益率,也就是对上海证券综合指数日收盘价格取对数差分。
> options(stringsAsFactors=F)
> data <- readLines("http://labfile.oss.aliyuncs.com/courses/900/000001.csv")
> data <- unlist(strsplit(data, split=","))
> data <- as.data.frame(matrix(data, ncol=9, byrow=T))
> colnames(data) <- data[1,]
> data <- data[-1,]
> date <- as.data.frame(as.Date(data[,1]))
> expr <- data[,2:ncol(data)]
> expr <- as.data.frame(sapply(expr, as.numeric))
> data <- cbind(date, expr)
> colnames(data)[1] <- "date"
> 
> close <- data[,2]
> n <- length(close)
> return <- log(close[2:n]) - log(close[1:n-1])
> head(return)
[1]  0.002351519  0.037768650  0.035340827  0.018622775
[5] -0.043202296 -0.028626936

也可以直接使用 diff 函数直接做差分求对数收益率。

> return <- diff(log(close))
> head(return)
[1]  0.002351519  0.037768650  0.035340827  0.018622775
[5] -0.043202296 -0.028626936

股票指数的可视化
在绘制图形之前,我们需要先将数据转化为时间序列格式,需要用到 ts 函数。

> Close.ts <- ts(close, start=c(2000), freq=250)
> Return.ts <- ts(return, start=c(2000), freq=250)
> par(mfrow=c(2, 1))
> plot(Close.ts, type="l", main="(a) Daily Closing Price of 00000.1SH", xlab="Date", ylab="Price", cex.main=0.95, las=1)
> plot(Return.ts, type="l", main="(b) Daily Rate of Return of 000001.SH", xlab="Date", ylab="Rate", cex.main=0.95, las=1)
image.png
上海证券综合指数的日收盘价(上)和日收益率(下)的时序图。
从图形分析结果来看,2008 年和 2015 年两个时间段有明显的波动聚集现象。
股票收益率的基本统计量
在做模型拟合之前需要对数据做一个基本的了解,先求解数据的一些基本统计量。
> library(tseries)
> u <- sum(return)/n
> e <- sqrt(sum((return - u)^2)/(n-1))
> s <- sum((return - u)^3)/((n-1)*e^3)
> k <- sum((return - u)^4)/((n-1)*e^4)
> u
[1] 0.0001962668
> e
[1] 0.01612871
> s
[1] -0.346041
> k
[1] 7.678296
> jarque.bera.test(return)

    Jarque Bera Test

data:  return
X-squared = 3958.7, df = 2, p-value < 2.2e-16

由实验结果我们可以得出上海证券综合指数的对数收益率的均值为 0.000196,标准差为 0.016129,偏度系数为 -0.246041,峰度系数为 7.678296,以及从正态性检验结果的 P 值接近于 0,也就是说上证指数日对数收益率不是正态分布,呈现左偏分布,且有高峰厚尾的现象。
ACF 图和 PACF 图
使用自相关函数(ACF)和偏自相关函数(PACF)来对收益率序列的自相关性进行分析。

> par(mfrow=c(2, 1))
> acf(return, main='', xlab='Lag(a)', ylab='ACF', las=1)
> title(main='(a) the ACF of Return', cex.main=0.95)
> pacf(return, main='', xlab='Lag(b)', ylab='PACF', las=1)
> title(main='(b) the PACF of Return', cex.main=0.95)
image.png

由收益率序列(return)的 ACF 图和 PACF 图可以得出:两个图大部分函数值在置信区间内(图中蓝色虚线区域)上下跳跃,所以收益率序列自相关性很低,或者说具有很弱的自相关性,因此在条件期望模型中不需要引入自相关性部分,满足 GARCH 模型中的均值方程,收益率由一个常数项加上一个随机扰动项组成。
虽然收益率序列基本不具有自相关性,但是要拟合 GARCH 模型,我们还需要考察收益率平方的自相关性。

> par(mfrow=c(2, 1))
> return.square <- return^2
> acf(return.square, main='', xlab='Lag(c)', ylab='ACF', las=1)
> title(main='(a) the ACF of Return Square', cex.main=0.95)
> pacf(return.square, main='', xlab='Lag(d)', ylab='PACF', las=1)
> title(main='(b) the PACF of Return Square', cex.main=0.95)
image.png
尽管股价收益率序列的 ACF 值揭示了其弱相关性,但收益率平方的 ACF 值 却表现出了一定的相关性和持续性,其大部分值都超过了置信区间(图中蓝色虚线)。注意到收益率平方的 ACF 值在滞后 3、10、21、30 期后都有缓慢衰退,说明了方差序列具有一定程度的序列相关性,因此采用 GARCH 模型来描述股价波动过程中的条件方差。
ARCH 效应的检验
收益率的时序图表明,在日收益率数据中可能存在 ARCH 效应,如果存在 ARCH 效应,则可以进行 GARCH 模型的拟合。反之,不能用 GARCH 模型拟合方程。
> library(zoo)
> library(FinTS)
> ArchTest(return, lag=12)

    ARCH LM-test; Null hypothesis: no ARCH effects

data:  return
Chi-squared = 389.3, df = 12, p-value < 2.2e-16

检验的原假设是:不存在 ARCH 效应。检验结果为卡方统计量的值为389.3,对应的 P 值几乎为0,也就是说在 1% 的显著性水平上拒绝原假设,从而拒绝不存在 ARCH 效应的假设,收益率序列存在 ARCH 效应,可以进行 GARCH 模型的拟合。
GARCH 模型的估计
GARCH(1,1)是 GARCH 模型中最常用的一种,也是最适于金融时间序列的建模的模型。

> library(timeDate)
> library(timeSeries)
> library(fBasics)
> library(fGarch)
> m1 <- garchFit(~1 + garch(1, 1), data=return, trace=F)
> summary(m1)

Title:
 GARCH Modelling 

Call:
 garchFit(formula = ~1 + garch(1, 1), data = return, trace = F) 

Mean and Variance Equation:
 data ~ 1 + garch(1, 1)
<environment: 0x00000111235de4f0>
 [data = return]

Conditional Distribution:
 norm 

Coefficient(s):
        mu       omega      alpha1       beta1  
2.6199e-04  1.6676e-06  7.1982e-02  9.2407e-01  

Std. Errors:
 based on Hessian 

Error Analysis:
        Estimate  Std. Error  t value Pr(>|t|)    
mu     2.620e-04   1.826e-04    1.435    0.151    
omega  1.668e-06   4.096e-07    4.071 4.68e-05 ***
alpha1 7.198e-02   6.948e-03   10.360  < 2e-16 ***
beta1  9.241e-01   6.857e-03  134.759  < 2e-16 ***
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log Likelihood:
 12118.48    normalized:  2.852751 

Description:
 Sun Dec 20 23:53:40 2020 by user: Administrator 


Standardised Residuals Tests:
                                Statistic p-Value     
 Jarque-Bera Test   R    Chi^2  990.7425  0           
 Shapiro-Wilk Test  R    W      0.9758627 0           
 Ljung-Box Test     R    Q(10)  36.51373  6.866768e-05
 Ljung-Box Test     R    Q(15)  45.52293  6.32978e-05 
 Ljung-Box Test     R    Q(20)  53.6347   6.55187e-05 
 Ljung-Box Test     R^2  Q(10)  3.001381  0.9813915   
 Ljung-Box Test     R^2  Q(15)  8.340001  0.9094294   
 Ljung-Box Test     R^2  Q(20)  11.97937  0.9167842   
 LM Arch Test       R    TR^2   4.240415  0.9786969   

Information Criterion Statistics:
      AIC       BIC       SIC      HQIC 
-5.703618 -5.697635 -5.703620 -5.701503 

根据实验结果,我们可以得到的拟合模型为:


image.png

括号中为t统计量,可以看到所有系数在0.05的显著水平下显著地异于零,说明上证指数收益率过去时刻的波动大小对当前波动大小有明显的影响,具有波动聚集效应。此外


image.png
约等于1,说明条件方差序列具有长记忆性,表明了收益率的波动具有较高的持续性,投机因素较强,总体风险较大。 拟合了GARCH(1,1)模型之后,为了查看它是否是最佳拟合模型,同时拟合GARCH(1,2)、GARCH(2,1)、GARCH(2,2)模型,并运用信息准则来选择最优模型。
> m2 <- garchFit(~1 + garch(1, 2), data=return, trace=F)
> m3 <- garchFit(~1 + garch(2, 1), data=return, trace=F)
> m4 <- garchFit(~1 + garch(2, 2), data=return, trace=F)
> summary(m2)

Title:
 GARCH Modelling 

Call:
 garchFit(formula = ~1 + garch(1, 2), data = return, trace = F) 

Mean and Variance Equation:
 data ~ 1 + garch(1, 2)
<environment: 0x00000110ac60e298>
 [data = return]

Conditional Distribution:
 norm 

Coefficient(s):
        mu       omega      alpha1       beta1       beta2  
2.6213e-04  1.6720e-06  7.2058e-02  9.2396e-01  1.0000e-08  

Std. Errors:
 based on Hessian 

Error Analysis:
        Estimate  Std. Error  t value Pr(>|t|)    
mu     2.621e-04   1.828e-04    1.434 0.151551    
omega  1.672e-06   4.677e-07    3.575 0.000351 ***
alpha1 7.206e-02   1.353e-02    5.325 1.01e-07 ***
beta1  9.240e-01   1.969e-01    4.692 2.70e-06 ***
beta2  1.000e-08   1.847e-01    0.000 1.000000    
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log Likelihood:
 12118.88    normalized:  2.852843 

Description:
 Sun Dec 20 23:57:51 2020 by user: Administrator 


Standardised Residuals Tests:
                                Statistic p-Value     
 Jarque-Bera Test   R    Chi^2  988.4542  0           
 Shapiro-Wilk Test  R    W      0.9758918 0           
 Ljung-Box Test     R    Q(10)  36.50941  6.878564e-05
 Ljung-Box Test     R    Q(15)  45.52432  6.326558e-05
 Ljung-Box Test     R    Q(20)  53.61493  6.596114e-05
 Ljung-Box Test     R^2  Q(10)  2.993229  0.981583    
 Ljung-Box Test     R^2  Q(15)  8.386035  0.9073755   
 Ljung-Box Test     R^2  Q(20)  12.00055  0.916057    
 LM Arch Test       R    TR^2   4.238585  0.9787361   

Information Criterion Statistics:
      AIC       BIC       SIC      HQIC 
-5.703332 -5.695853 -5.703335 -5.700689 

> summary(m3)

Title:
 GARCH Modelling 

Call:
 garchFit(formula = ~1 + garch(2, 1), data = return, trace = F) 

Mean and Variance Equation:
 data ~ 1 + garch(2, 1)
<environment: 0x000001109bba3428>
 [data = return]

Conditional Distribution:
 norm 

Coefficient(s):
        mu       omega      alpha1      alpha2       beta1  
2.7128e-04  1.7510e-06  5.9759e-02  1.4612e-02  9.2146e-01  

Std. Errors:
 based on Hessian 

Error Analysis:
        Estimate  Std. Error  t value Pr(>|t|)    
mu     2.713e-04   1.828e-04    1.484 0.137844    
omega  1.751e-06   4.370e-07    4.006 6.17e-05 ***
alpha1 5.976e-02   1.692e-02    3.531 0.000413 ***
alpha2 1.461e-02   1.856e-02    0.787 0.431031    
beta1  9.215e-01   7.758e-03  118.774  < 2e-16 ***
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log Likelihood:
 12119.17    normalized:  2.852913 

Description:
 Sun Dec 20 23:57:51 2020 by user: Administrator 


Standardised Residuals Tests:
                                Statistic p-Value     
 Jarque-Bera Test   R    Chi^2  1005.964  0           
 Shapiro-Wilk Test  R    W      0.9757217 0           
 Ljung-Box Test     R    Q(10)  37.06228  5.520644e-05
 Ljung-Box Test     R    Q(15)  46.11139  5.104441e-05
 Ljung-Box Test     R    Q(20)  54.23127  5.345223e-05
 Ljung-Box Test     R^2  Q(10)  2.360193  0.9927602   
 Ljung-Box Test     R^2  Q(15)  7.913223  0.9272145   
 Ljung-Box Test     R^2  Q(20)  11.52563  0.9314369   
 LM Arch Test       R    TR^2   3.631852  0.9892015   

Information Criterion Statistics:
      AIC       BIC       SIC      HQIC 
-5.703471 -5.695992 -5.703474 -5.700828 

> summary(m4)

Title:
 GARCH Modelling 

Call:
 garchFit(formula = ~1 + garch(2, 2), data = return, trace = F) 

Mean and Variance Equation:
 data ~ 1 + garch(2, 2)
<environment: 0x0000011080dcc398>
 [data = return]

Conditional Distribution:
 norm 

Coefficient(s):
        mu       omega      alpha1      alpha2       beta1  
2.6806e-04  2.6857e-06  5.8700e-02  5.6155e-02  3.6645e-01  
     beta2  
5.1237e-01  

Std. Errors:
 based on Hessian 

Error Analysis:
        Estimate  Std. Error  t value Pr(>|t|)    
mu     2.681e-04   1.835e-04    1.461 0.144109    
omega  2.686e-06   1.512e-06    1.776 0.075660 .  
alpha1 5.870e-02   1.660e-02    3.536 0.000406 ***
alpha2 5.615e-02   5.505e-02    1.020 0.307663    
beta1  3.665e-01   8.746e-01    0.419 0.675213    
beta2  5.124e-01   8.095e-01    0.633 0.526764    
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log Likelihood:
 12119.38    normalized:  2.852961 

Description:
 Sun Dec 20 23:57:52 2020 by user: Administrator 


Standardised Residuals Tests:
                                Statistic p-Value     
 Jarque-Bera Test   R    Chi^2  1001.95   0           
 Shapiro-Wilk Test  R    W      0.9756968 0           
 Ljung-Box Test     R    Q(10)  37.22023  5.183729e-05
 Ljung-Box Test     R    Q(15)  46.26691  4.821516e-05
 Ljung-Box Test     R    Q(20)  54.3383   5.153017e-05
 Ljung-Box Test     R^2  Q(10)  2.518153  0.9906085   
 Ljung-Box Test     R^2  Q(15)  8.030874  0.922539    
 Ljung-Box Test     R^2  Q(20)  11.7419   0.924673    
 LM Arch Test       R    TR^2   3.783683  0.9870309   

Information Criterion Statistics:
      AIC       BIC       SIC      HQIC 
-5.703097 -5.694123 -5.703101 -5.699926 
image.png
由信息准则的值可以看出,拟合的 4 个 GARCH 模型的 AIC、BIC、SIC、HQIC 的值,发现随着参数增加,模型的AIC,BIC等的值并没有显著增加。理论上选择最简洁的模型GARCH(1,1)建模最合适。
GARCH 模型的标准化残差分析
在拟合完 GARCH 模型之后,对模型结果的残差进行分析。
> resi <- residuals(m1, standardize=T)
> res <- ts(resi, frequency=250, start=c(2000))
> plot(res, xlab='Date', ylab='st.resi', type='l')
> par(mfool=c(2, 2))
image.png

上图是残差序列的时序图,可以看到残差序列没有明显的波动聚集效应。

> acf(resi, lag=24)
image.png
> acf(resi^2, lag=24)
image.png
> pacf(resi, lag=24)
image.png
> pacf(resi^2, lag=24)
image.png

上图是残差和残差平方的自相关图和偏自相关图。可以看到残差序列的 ACF 和 PACF 图大部分函数值在置信区间内(图中蓝色的虚线区域)上下跳跃,所以标准化残差序列并不具有自相关性,或者具有一定的弱相关性(PACF 图结果)。而残差平方序列的 ACF 和 PACF 图都没有明显的拖尾或截尾现象,所有函数值都在置信区间内,因此其不具序列相关性。再将标准化冲击平方的ACF值与收益率平方的ACF值进行比较,结果表明 GARCH 模型可以有效地解释收益率序列。

> Box.test(resi^2, lag=10, type='Ljung')

    Box-Ljung test

data:  resi^2
X-squared = 3.0014, df = 10, p-value = 0.9814

> Box.test(resi^2, lag=15, type='Ljung')

    Box-Ljung test

data:  resi^2
X-squared = 8.34, df = 15, p-value = 0.9094

> Box.test(resi^2, lag=20, type='Ljung')

    Box-Ljung test

data:  resi^2
X-squared = 11.979, df = 20, p-value = 0.9168

Ljung-Box 自相关检验的原假设是序列中不存在自相关。对标准化残差平方用进行 Ljung-Box 方法进行检验在 0.05 的显著水平下,滞后项为为 10,15,20 时分别得到的 P 值分别为:0.9814,0.9094,0.9618,不能拒绝原假设,可接受原假设,标准化残差平方不存在序列相关性。

相关文章

  • 24分析股票指数的GARCH效应

    GARCH是一种用过去的方差以及其的预测值来预测未来方差的自回归条件异方差时间序列模型。其中异方差指方差随时间变化...

  • 马尔科夫区域转换GARCH模型及shibor文献阅读

    1.markov区域转换GARCH 篇一 人民币汇率与股市的风险溢出效应再检验---基于马尔科夫转换GARCH模型...

  • GARCH时间序列分析

    GARCH模型称为广义ARCH模型,是ARCH模型的拓展,加入了误差项条件方差的滞后期,将影响因子扩展为均方误差和...

  • spss中介效应

    中介效应分析方法_spss中介效应分析 关键词:spss中介效应结果分析、中介效应分析、spss中介效应检验分析、...

  • garch类文章笔记

    精要 参考石川garch文章 总的来说,GARCH(p, q)可以理解为波动率的ARMA(p, q)建模,其公式如...

  • dcc-garch原理简介和模型实现

    一、原理 DCC-GARCH(DynamicConditional Corelational Autoregres...

  • 股票指数Boosting分析法

    使用蜗牛量化股票分析软件的boosting策略组分析sz399***指数 大部分的股票量化策略都是单发策略,蜗牛量...

  • es期权期货交易

    美股票指数衍生品是目前世界上最成熟的股票指数衍生品。芝加哥期货交易所(CME)股票指数衍生品,有数十种产品...

  • 股指期货

    股指期货听语音 股票指数期货(Stock Index Futures),简称股指期货或指数期货.股票指数期货交易的...

  • 数字资产投资市场的“七个效应”(下篇)

    上篇我们分析了区块链资产投资领域的锚定效应、效用层叠及回归平均值效应,本篇继续分析接下来的四个效应。 一、 损失厌...

网友评论

      本文标题:24分析股票指数的GARCH效应

      本文链接:https://www.haomeiwen.com/subject/gihlnktx.html