libname process 'G:\Enseignements\M2ISN-Series temp\SAS\'; /*simulations selon différentes lois*/ data process.simulations; call streaminit(123); do i=1 to 10000; scauchy=rand('CAUCHY'); sexpo=rand('EXPO'); slogn=rand('LOGN'); snorm=rand('NORMAL'); sunif=rand('UNIFORM'); sbernouilli=rand('BERN',0.5); output; end; run; data process.simulations; set process.simulations; if sbernouilli=0 then sign=-1; else sign=1; run; /*periodogrammes*/ proc spectra data=process.simulations out=process.periodsim s p whitetest; var snorm; weight parzen; run; quit; /*normale*/ proc gplot data=process.periodsim; plot p_01*freq;/*périodogramme*/ run; quit; proc gplot data=process.periodsim; plot s_01*freq;/*densité spectrale*/ run; quit; /********************************************/ /* marches aléatoires */ /********************************************/ /*créations des marches aléatoires avec bruit normaux et bruits de cauchy*/ data process.marches; set process.simulations; retain mcauchy mnorm; /*bruit cauchy*/ if _N_=1 then mcauchy=scauchy; else mcauchy=mcauchy+scauchy; /*bruit normal*/ if _N_=1 then mnorm=snorm; else mnorm=mnorm+snorm; run; /*trajectoires des marches aléatoires*/ proc gplot data=process.marches; plot (mcauchy mnorm)*i; run; quit; proc arima data=process.marches; identify var=mnorm nlag=30; run; quit; /*densités spectrales*/ proc spectra data=process.marches out=process.periodmar s p whitetest; var mnorm; weight parzen; run; quit; proc gplot data=process.periodmar; plot (p_01 s_01)*freq ; run; quit; /********************************************/ /* processus AR1 (avec bruit normal) */ /********************************************/ data process.ar; set process.simulations; retain arnorm; if _N_=1 then arnorm=snorm; else arnorm=0.75*arnorm+snorm; run; proc gplot data=process.ar; plot (arnorm)*i; run; quit; proc arima data=process.ar; identify var=arnorm nlag=30; run; quit; proc arima data=process.ar; identify var=arnorm; estimate method=ml plot p=1; forecast back=10 lead=10 out=process.prevision; run; quit; data process.prevision; set process.prevision; pred=forecast+residual-arnorm; run; /*densités spectrales*/ proc spectra data=process.ar out=process.periodar s p whitetest; var arnorm; weight parzen; run; quit; proc gplot data=process.periodar; plot (p_01 s_01)*freq ; run; quit;