求问,我想模拟出一个TGARCH序列,自己写的代码是这样的
/*设定参数*/
%let r0 = 0.000633;
%let alpha0 = 0.000561 ;
%let alpha1 = 0.23684 ;
%let beta1 = 0.818566;
%let gama1=-0.03264;
%let Phi0 = 0.000357 ;
%let Phi1 = 0.008122 ;
%let d0=0;
data TGARCH11 (keep = r t);
r_lag = &r0;
e_lag = 0.01*rannor(53628);
sigma_lag = 0.01;
d_lag= &d0;
do t = -100 to 6950;
sigma = sqrt(&alpha0 + &alpha1*e_lag**2 + &beta1*sigma_lag + &gama1*d_lag*e_lag**2);
e = sigma*rannor(53628);
r = &phi0 + &phi1*r_lag + e;
d = d_lag;
if t > 0 then output;
sigma_lag = sigma;
r_lag = r;
e_lag = e;
if e>=0 then d_lag=0;
else if d_lag=1;
end;
run;
里面d是一个虚拟变量,当e_lag大于0时取0,小于零时取1,这样写哪里错了?模拟不出来,求解答!!!谢谢~