拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

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

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

自回归条件异方差(ARCH)模型涉及具有时变异方差的时间序列,其中方差是以特定时间点的现有信息为条件的。

ARCH模型

ARCH模型假设时间序列模型中误差项的条件均值是常数(零),与我们迄今为止讨论的非平稳序列不同),但其条件方差不是。这样一个模型可以用公式1、2和3来描述。

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

方程4和5给出了测试模型和假设,以测试时间序列中的ARCH效应,其中残差e^t来自于将变量yt回归一个常数,如1,或回归一个常数加上其他回归因子;方程4中的测试可能包括几个滞后项,在这种情况下,无效假设(方程5)是所有这些项都不显著。

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

无效假设是不存在ARCH效应。检验统计量为

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

 下面的例子使用了数据集,它包含了500个股票收益率的生成观测值。图显示了数据的时间序列图和柱状图。

  1.  
    plot.ts(r)
  2.  
    hist(r)

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

图: 变量 的水平和柱状图

让我们首先对数据集中的变量r一步一步地进行公式4和5中描述的ARCH检验。

summary(yd)

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

  1.  
    ehsq <- ts(resid(mean)^2)
  2.  
    summary(ARCH)

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

  1.  
     
  2.  
    Rsq <- glance(ARCH)[[1]]
  3.  
    LM <- (T-q)*Rsq
  4.  
    Chicr <- qchisq(1-alpha, q)

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

结果是LM统计量,等于62.16,与α=0.05和q=1*度的临界卡方值进行比较;这个值是χ2(0.95,1)=3.84;这表明拒绝了无效假设,结论是该序列具有ARCH效应。

如果我们不使用一步步的程序,而是使用R的ARCH检验功能之一,也可以得出同样的结论。

ArchTest

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

函数garch(),当使用order=参数等于c(0,1)时,成为一个ARCH模型。这个函数可以用来估计和绘制方程3中定义的方差ht,如以下代码和图所示。 

garch(r,c(0,1))

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

summary(arch)

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

  1.  
    ts(2*fitted.values^2)
  2.  
    plot.ts(hhat)

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

图 对数据集的ARCH(1)方差的估计

GARCH模型

  1.  
    # 使用软件包`garch`来建立GARCH模型
  2.  
     
  3.  
    fit(spec=garch, data=r)
  4.  
    coef(Fit)

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

  1.  
    fitted.values
  2.  
    fit$sigma^2)
  3.  
    plot.ts(hhat)

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

图: 使用数据集的标准GARCH模型(sGARCH)。

  1.  
    # tGARCH
  2.  
     
  3.  
    garchfit(spec, data=r, submodel="TGARCH")
  4.  
    coef(garchfit)

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

  1.  
    fitted.values
  2.  
     
  3.  
    fit$sigma^2)
  4.  
    plot.ts(hhat)

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

图: 数据集的tGARCH模型

  1.  
    # GARCH-IN-MEAN模型
  2.  
     
  3.  
    fit( data=r,
  4.  
    distribution="std",variance=list(model="fGARCH")
  5.  
    coef(garchFit)

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

  1.  
    fit$fitted.values
  2.  
    fit$sigma^2)
  3.  
    plot.ts(hhat)

拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

图:使用数据集的GARCH-in-mean模型的一个版本

图显示了GARCH模型的几个版本。预测结果可以通过ugarchboot()来获得。


拓端tecdat|R语言时变波动率和ARCH,GARCH,GARCH-in-mean模型分析股市收益率时间序列

最受欢迎的见解

1.在python中使用lstm和pytorch进行时间序列预测

2.python中利用长短期记忆模型lstm进行时间序列预测分析

3.使用r语言进行时间序列(arima,指数平滑)分析

4.r语言多元copula-garch-模型时间序列预测

5.r语言copulas和金融时间序列案例

6.使用r语言随机波动模型sv处理时间序列中的随机波动

7.r语言时间序列tar阈值自回归模型

8.r语言k-shape时间序列聚类方法对股票价格时间序列聚类

9.python3用arima模型进行时间序列预测