首页 > 编程语言 >拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程

时间:2022-11-28 11:03:07浏览次数:41  
标签:似然 epsilon tecdat 拓端 theta ARCH 我们 高斯分布

本文考虑一些ARCH(p)过程,例如ARCH(1)。

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_数据

其中

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_数据_02

有一个高斯白噪声 

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_时间序列_03

.

  1.  > for(t in 3:n){
  2.  + sigma2[t]=w+a1*epsilon[t-1]^2+a2*epsilon[t-2]^2
  3.  + epsilon[t]=eta[t]*sqrt(sigma2[t])
  4.  + }
  5.   

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_时间序列_04

(红线是条件方差过程)。

> acf(epsilon,lag=50,lwd=2)

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_数据_05

如果

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_r语言_06

是一个ARCH(),那么

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_时间序列_07

就是一个AR(1)过程。所以第一个想法是考虑回归,就像我们对AR(1)所做的那样

  1.  > summary(lm(Y~X1,data=db))
  2.   

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_数据_08

 这里有一些明显的自相关。但由于我们的向量不能被认为是高斯分布的,使用最小二乘法也许不是最好的策略。实际上,如果我们的序列不是高斯分布的,它仍然是有条件的高斯分布的,因为我们假设

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_r语言_09

是高斯(强)白噪声。

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_时间序列_10

然后,似然函数是

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_时间序列_11

而对数似然函数为

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_数据_12

而一个自然的想法是定义

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_r语言_13

代码简单地说就是

  1.   
  2.  > OPT=optim(par=
  3.  + coefficients(lm(Y~X1,data=db)),fn=loglik)

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_r语言_14

由于参数必须是正数,我们在此假定它们可以写成一些实数的指数。观察一下,这些值更接近于用来生成我们的时间序列的值。

如果我们使用R函数来估计这些参数,我们会得到

  1.  > summary(garch(epsilon,c(0,1)))
  2.  ...
  3.   

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_数据_15

 所以拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_r语言_16的置信区间是 

  1.  coef[2,1]+
  2.  + c(-1.96,1.96)*coef[2,2]

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_时间序列_17

 实际上,由于我们的主要兴趣是这个拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_r语言_18参数,所以有可能使用轮廓似然方法。

  1.  > OPT=optimize(function(x) -proflik(x), interval=c(0,2))
  2.  objective-qchisq(.95,df=1)
  3.  > abline(h=t,col="red")

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_数据_19

当然,所有这些技术都可以扩展到高阶ARCH过程。例如,如果我们假设有一个ARCH(2)时间序列

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_数据_20

其中

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_r语言_21

有一个高斯(强)白噪声 

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_时间序列_22

.对数似然性仍然是

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_r语言_23

而我们可以定义

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_r语言_24

上面的代码可以被修改,以考虑到这个额外的部分。

  1.  optim(par=
  2.  + coefficients(lm(Y~X1+X2,data=db)),fn=loglik)

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_时间序列_25

我们也可以考虑一些广义的ARCH过程,例如GARCH(1,1)。

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_时间序列_26

其中

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_数据_27

同样,可以使用最大似然技术。实际上,我们也可以用Fisher-Scoring算法编码,因为(在一个非常普遍的情况下 

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_数据_28

这里 

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_r语言_29

. 使用标准的梯度下降算法,我们可以得到以下对GARCH过程的估计。

  1.   
  2.  > while(sum(G^2)>1e-12){
  3.  + s2=rep(theta[1],n)
  4.  + for (i in 2:n){s2[i]=theta[1]+theta[2]*X[(i-1)]^2+theta[3]*s2[(i-1)]}
  5.   

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_数据_30

这里有趣的一点是,我们也得出了(渐进的)方差

>sqrt(diag(solve(H))

拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_时间序列_31


拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程_r语言_32

标签:似然,epsilon,tecdat,拓端,theta,ARCH,我们,高斯分布
From: https://blog.51cto.com/u_14293657/5890723

相关文章