libname process 'G:\Enseignements\M2ISN-Series temp\SAS\'; /*simulations 1 residu*/ data process.series; call streaminit(123); do i=1 to 100; snorm=rand('NORMAL'); output; end; run; /*(1-L)(1-0.7L)=1-(1+0.7)L+0.7 L2*/ data process.series; set process.series; retain y ly; if _N_=1 then do; ly2=0;ly=0;y=snorm; end; if _N_=2 then do; ly2=0; ly=y;y=snorm; end; if _N_>2 then do; ly2=ly;ly=y;y=1.7*ly-0.7*ly2+0.2*snorm; end; run; /*test de Dickey-Fuller en utilisant une proc reg + la commande Probdf*/ data process.series; set process.series (keep=y); y1=lag(y); yd=dif(y); run; proc reg data=process.series outest=process.sortie; model yd= y1 ; test y1=0; run;quit; data process.sortie; set process.sortie; DF=100*y1; /*statistique de DF*/ F=DF*DF; /*à comparer au test de la proc reg*/ p=probdf(DF,100,1,"RSM"); /*voir l'aide sur cette fonction, RSM="regression test statistic for the single mean (intercept) case"*/ run; proc print data=process.sortie; run; /*test de DF augmenté*/ data process.series; set process.series (keep=y); y1=lag(y); yd=dif(y); yd1=lag1(yd); yd2=lag2(yd); yd3=lag3(yd); run; proc reg data=process.series outest=process.sorties covout; model yd=y1 yd1-yd3; run;quit; data process.sorties2; set process.sorties; retain a; if _type_='PARMS' then a=y1; if _type_='COV' & _NAME_='y1' then do; x=a/sqrt(y1); p=probdf(x,100,1,"SSM"); /*"SSM"=studentized test statistic for the single mean (intercept) case*/ end; run; proc print data=process.sorties2; run; /*avec la macro %dftest*/ %dftest(process.series,y,ar=1); %put p=&dftest; /*avec la proc ARIMA*/ proc arima data=process.series; identify var=y stationarity=(ADF=(2)); run;quit; proc arima data=process.series; identify var=y stationarity=(ADF=(1)); run;quit; proc arima data=process.series; identify var=y(1) stationarity=(ADF=(2)); estimate p=2; run;quit; proc arima data=process.series; identify var=y(1) stationarity=(ADF=(2)); estimate p=1; forecast back=10 lead=20 out=process.prev; run;quit; data process.prev; set process.prev; time=_n_; run; proc gplot data=process.prev; plot (y forecast L95 U95)*time / overlay; run;quit; /*avec la proc autoreg*/ proc autoreg data=process.series; model y= / stationarity=(KPSS=(KERNEL=QS)); run;