ARCH和GARCH模型

Reads: 2097 Edit

1 数据

采用2016年至2020年的shibor数据构建ARCH/GARCH模型,分析我们shibor市场利率的波动集聚性。

2 加载数据并绘制利率走势图

打开Excel中的数据,复制前两列,如下图所示。

r-80

> shibor=read.table("clipboard",header = TRUE)
> library(xts)
> sb=as.xts(shibor)
> plot(sb)

r-81

3 单位根检验

> library(fUnitRoots)
> unitrootTest(sb,lags=1,type = c("nc"))

Title:
 Augmented Dickey-Fuller Test

Test Results:
  PARAMETER:
    Lag Order: 1
  STATISTIC:
    DF: -1.662
  P VALUE:
    t: 0.09129 
> unitrootTest(sb,lags=1,type = c("c"))

Title:
 Augmented Dickey-Fuller Test

Test Results:
  PARAMETER:
    Lag Order: 1
  STATISTIC:
    DF: -7.2154
  P VALUE:
    t: 1.275e-10 
    n: 0.2614    

说明,采用截距形式的ADF单位根检验时,原始序列平稳。

4 估计均值方程

不在绘制自相关和偏自相关图来判断arma模型形式,直接用auto.arima()函数判断

> install.packages("forecast")
> auto.arima(sb,stationary = TRUE)
Series: sb 
ARIMA(1,0,1) with non-zero mean 

Coefficients:
         ar1     ma1    mean
      0.9158  0.2284  2.1804
s.e.  0.0120  0.0290  0.0682

sigma^2 = 0.02776:  log likelihood = 465.95
AIC=-923.89   AICc=-923.86   BIC=-903.37

说明:最终选择了arma(1,1)形式,等价于arima(1,0,1)。

5 估计方差方程

5.1 ARCH效应检验

> install.packages("FinTS") 
> library(FinTS)
> fit=auto.arima(sb,stationary = TRUE)    #保存均值方程,进而获得残差序列    
> ArchTest(fit$residuals)

    ARCH LM-test; Null hypothesis: no ARCH effects

data:  fit$residuals
Chi-squared = 64.182, df = 12, p-value = 3.861e-09

说明: p-value = 3.861e-09小于0.05,因而拒绝不存在ARCH效应的原假设,认为序列存在波动集聚性!

5.2 估计ARCH(1)模型

> install.packages("tseries")
> library(tseries)
> fit_arch=garch(fit$residuals,order=c(0,1))
> summary(fit_arch)

Call:
garch(x = fit$residuals, order = c(0, 1))

Model:
GARCH(0,1)

Residuals:
     Min       1Q   Median       3Q      Max 
-4.94988 -0.27560  0.01354  0.39337 10.61367 

Coefficient(s):
    Estimate  Std. Error  t value Pr(>|t|)    
a0 0.0091777   0.0002658    34.53   <2e-16 ***
a1 1.2386604   0.0581453    21.30   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Diagnostic Tests:
    Jarque Bera Test

data:  Residuals
X-squared = 10897, df = 2, p-value < 2.2e-16


    Box-Ljung test

data:  Squared.Residuals
X-squared = 0.78675, df = 1, p-value = 0.3751

说明:残差方程的系数分别为0.0091777和1.2386604,且均显著。

5.3 估计GRCH(1,1)模型

> fit_garch=garch(fit$residuals,order=c(1,1))
> summary(fit_garch)

Call:
garch(x = fit$residuals, order = c(1, 1))

Model:
GARCH(1,1)

Residuals:
     Min       1Q   Median       3Q      Max 
-5.03254 -0.43725  0.02035  0.51587 10.29210 

Coefficient(s):
    Estimate  Std. Error  t value Pr(>|t|)    
a0 1.507e-04   7.316e-06    20.61   <2e-16 ***
a1 5.178e-01   2.904e-02    17.83   <2e-16 ***
b1 6.670e-01   1.201e-02    55.53   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Diagnostic Tests:
    Jarque Bera Test

data:  Residuals
X-squared = 9070.9, df = 2, p-value < 2.2e-16


    Box-Ljung test

data:  Squared.Residuals
X-squared = 0.70679, df = 1, p-value = 0.4005

说明:残差方程的系数分别为1.507e-04、5.178e-01和6.670e-01,且均显著。



获取案例数据,请关注微信公众号并回复:R_dt12


Comments

Make a comment