1.先回答上面的问题 set sample to 2 202是注解,
应改为 'set sample to 2 202
2.你的数据只有195,依你的程序会少掉一个obs,
将你的程序修改如下
' Program to estimate a GARCH(1,1)-t model on the series fa.
'%path = @runpath+"../data/"
'cd %path
load jjsj
series d1 = 0
smpl @first @first
d1 = 1
smpl @all
'get starting values from Gaussian ARCH
equation eq1
eq1.arch fa c
show eq1.output
'declare and innitialize parameters
coef(1) mu = eq1.c(1)
coef(1) omega = eq1.c(2)
coef(1) alpha =eq1.c(3)
coef(1) beta =eq1.c(4)
coef(1) tdf=3
' Define pi
!pi=@acos(-1)
'set up GARCH(1,1)-t likelihood
logl ll_l
ll_l.append @logl logl
ll_l.append res=fa-mu(1)
ll_l.append sig2 =@recode(d1=1,omega(1)/(1-alpha(1)-beta(1)),omega(1)+alpha(1)*res(-1)^2+beta(1)*sig2(-1))
ll_l.append z =res^2/sig2/(tdf(1)-2)+1
ll_l.append logl = @gammalog((tdf(1)+1)/2)-@gammalog(tdf(1)/2)-log(!pi)/2-log(tdf(1)-2)/2-log(sig2)/2 - (tdf(1)+1)*log(z)/2
'estimate and display output
ll_l.ml(showopts,m=1000,c=1e-5)
show ll_l.output
[此贴子已经被作者于2007-5-21 7:46:35编辑过]