new; mu = 0; @ location @ nobs = 500; psi = 0.9; phi = -0.9; @ df=2 ; @ @ MAR(1,1) process student-2 errors @ y = zeros(nobs,1); eps = rndt(nobs, 1, 2); proc rndt(r,c,df); /* r:rows, c:cols, df:df */ local x,z; x = rndn(df,r*c); x = sumc(x.*x); x = reshape(x,r,c); z = rndn(r,c); retp(z./sqrt(x/df)); endp; /* Example: y = rndt(100,5,2); */ @ MAR(1,1) process Cauchy errors @ sig=1; uu = rndu(nobs,1); cou = sig *tan(pi*(uu-0.5)) +mu; eps=cou; nve = zeros(nobs,1); nu = zeros(nobs,1); nve[1,1] = eps[1,1]; nu[nobs,1] = eps[1,1]; @ makes 1 vector of processes with psi, phi @ i = 2; do until i> nobs; nve[i,1] = eps[i,1] + phi*nve[i-1,1]; i = i+1; endo; i = 1; do until i > nobs-1; k = nobs-i; nu[k,1] = eps[k,1] + psi*nu[k+1,1]; i = i+1; endo; i = 1; do until i >nobs-1; term = 1 - phi*psi; y[i] = (1/term) * (nve[i,1] + psi*nu[i+1,1]); i = i+1; endo; y = trimr(y,50,50); @ the output is 400 vector y @ output file=simul.out reset; print y; end;