|
额,我用的是s-plus做的,数据是ibm的9190个对数收益率AR(2)-GARCH(1,1)-t5计算VaR
(1)先运用数据拟合AR(2)-GARCH(1,1)模型
s-plus语句:
>spec= garch(ibm~ar(2), ~garch(1,1),cond.dist="t",dist.par=5)
Iteration
0
Step Size =
1.00000
Likelihood = -1.00000e+010
Iteration
0
Step Size = 0.200000
Likelihood =
2.88635
Iteration
1
Step Size =
1.00000
Likelihood =
2.88205
Iteration
1
Step Size = 0.200000
Likelihood =
2.88788
Iteration
2
Step Size =
1.00000
Likelihood =
2.89014
Iteration
2
Step Size =
2.00000
Likelihood = -1.00000e+010
Iteration
3
Step Size =
1.00000
Likelihood =
2.89267
Iteration
3
Step Size =
2.00000
Likelihood =
2.89140
Iteration
4
Step Size =
1.00000
Likelihood =
2.89281
Iteration
4
Step Size =
2.00000
Likelihood =
2.89279
Convergence R-Square = 0.00002040485 isless than tolerance = 0.0001
Convergence reached.
> spec
Call:
garch(formula.mean = ibm ~ ar(2),formula.var =
~ garch(1, 1), cond.dist =
"t",dist.par = 5)
Mean Equation: structure(.Data = ibm ~ar(2)
, class = "formula"
)
Conditional Variance Equation:structure(.Data =
~ garch(1, 1)
, class = "formula"
)
Coefficients:
C
3.604e-004
AR(1)
1.803e-003
AR(2) -3.145e-002
A
2.656e-006
ARCH(1)
4.935e-002
GARCH(1)
9.385e-001
因此,可以求出GARCH模型的各个参数。
(2)运用GARCH模型单步向前预测
首先运用s-plus语句,求出条件方差
> names(spec)
[1] "residuals" "sigma.t" "df.residual" "coef" "model"
[6] "cond.dist" "likelihood" "opt.index" "cov" "prediction"
[11] "call" "asymp.sd" "series"
> spec$sigma.t
将所得条件标准差平方得条件方差,然后代入GARCH模型中进行向前一步预测(当然还有第9189天和第9190天的收益率),求出第9191天的方差和收益率。
(3)将方差和收益率代入VaR模型中计算,VaR=r-1.65*标准差
额,大家可以提提意见和建议
|