1 数据
采用2016年至2020年的shibor数据构建ARCH/GARCH模型,分析我们shibor市场利率的波动集聚性。
2 加载数据并绘制利率走势图
打开Excel中的数据,复制前两列,如下图所示。
> shibor=read.table("clipboard",header = TRUE)
> library(xts)
> sb=as.xts(shibor)
> plot(sb)
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,且均显著。