This presents egarch(1,1) model using simple R code examples.
options(warn=1,messages=1)
suppressPackageStartupMessages(library(rugarch))
suppressPackageStartupMessages(library(MASS))
##パッケージMASSに含まれているSP500の収益率の
#データを使う
ret<-ts(SP500)
##rugarchでegarch(1,1)モデルを推定する#EGARCHボラティリティモデ
#ルをパッケージ rugarch
#を使って推定してみる。詳しい使い方については
#Introduction to the rugarch package (Version 1.3-8)
# Alexios Ghalanos に書かれている。cran.r-project.orgの
#Vignettesnで読めるようになっている。
# https://cran.r-project.org/web/packages/rugarch/Vignettes
#推定作業はrugarchの指示通りにRコードを記述すれば容易に
#計算結果だけでなく関連する各種のグラフもoutputしてくれるが
#が、egarchによる推定結果の読み方で注意すべきと思われる点を
#まとめてみた。rugarchでのegarchには以下のような特徴が見られる。
#ここで注目すべきは、この条件付分散の式に(標準正規変数の絶対値)
#の 期待値が組み込まれている点である。絶対値を利用して悪いニュース
#は良いニュースよりもボラティリティを増幅さすという非対称性を
#モデル化しようとしている。
egarchspec <- ugarchspec(variance.model=list(model="eGARCH",
garchOrder=c(1,1)),
mean.model=list(armaOrder=c(0,0)),
distribution.model="norm")
egarchfit <- ugarchfit(spec=egarchspec, data=ret)
#
#
#
egarchfit@fit$matcoef
#各係数の推定値は以下のようになる。
## Estimate Std. Error t value Pr(>|t|)
## mu 3.278995e-02 0.011463333 2.860420538 4.230796e-03
## omega -1.182441e-05 0.002252076 -0.005250451 9.958108e-01
## alpha1 -8.274741e-02 0.010288179 -8.042960453 8.881784e-16
## beta1 9.822487e-01 0.002156778 455.424079226 0.000000e+00
## gamma1 1.260175e-01 0.012893593 9.773653326 0.000000e+00
# μ= 0.0327 ω= -0.00001 α=-0.0827 β=0.9822 γ=0.126
#と推定されている。
rhat <- egarchfit@fit$fitted.values
plot.ts(rhat,ylim=c(-0.2,0.2))
#収益率のグラフはretの平均値0.0327で一定となっている。
hhat <- ts(egarchfit@fit$sigma^2)
#
par(mfrow=c(2,1))
plot.ts(hhat)
plot.ts(ret)
# 収益率が大きなマイナスになった時には大きなプラスの収益率の時よりも
# 相対的にボラティリティが大きくなる傾向が見られる。
par(mfrow=c(1,1))
#
#
plot(egarchfit,which="all")
##
## please wait...calculating quantiles...
#
rugarchではEGARCH(1,1)モデル を下記のように定義していた。
単位根検定の背景(ディッキー・フラー分布のシミュレーション with R)