Data
à l'aide de la fonction Lag
, stocker le résultat
dans Corrigé
/* Moyenne mobile */ /* Avec des lags */ data mlag; set serie; a3=(y+lag(y)+lag2(y))/3; y=lag(y); x=lag(x); t=lag(t); run;
Corrigé
proc gplot data=mlag; plot (x y a3)*t/ overlay legend; run; quit;
Expand
pour appliquer les moyennes mobiles
arithmétiques centrées d'ordre 3,5,13 et 23 à la série
Corrigé
/* Avec expand */ proc expand data=serie out=xlag; id t; convert y=a3 / transform=(cmovave 3); convert y=a5 / transform=(cmovave 5); convert y=a13 / transform=(cmovave 13); convert y=a23 / transform=(cmovave 23); run;
Lag
pour claculer la moyenne mobile de
Henderson d'ordre 13
Corrigé
/* Moyenne mobile de henderson */ data xlagh; set serie; h13=( -325*y -468*lag1(y) +1100*lag3(y) +2475*lag4(y) +3600*lag5(y) +4032*lag6(y) +3600*lag7(y) +2475*lag8(y) +1100*lag9(y) -468*lag11(y) -325*lag12(y))/16796; t=lag6(t); x=lag6(x); y=lag6(y); if h13 ne .; run; proc gplot data=xlagh; plot (x y h13)*t / overlay legend; run; quit;
Expand
. (lire les documents sur internet). La procédure
Expand
n'accepte que des poids positifs. Comparer la
moyenne mobile de Henderson à l'application successive de 3 moyennes mobile
centré d'ordre 5 à la série
Corrigé
/* Moyenne mobile de Henderson avec expand */ proc expand data=serie out=xlag2; id t; convert xb=a5_5_5 / transform=(cmovave 5 cmovave 5 cmovave 5); convert xb=h13_p / transform=(cmovave (0 0 0 1100 2475 3600 4032 3600 2475 1100 0 0 0)); convert xb=h13_n / transform=(cmovave (325 468 0 0 0 0 0 0 0 0 0 468 325)); run; data xlag2; set xlag2; h13=(h13_p*(+1100 +2475 +3600 +4032 +3600 +2475 +1100) -h13_n*(+325 +468 +468 +325))/16796; run; proc gplot data=xlag2; plot (x xb a5_5_5 h13)*t / overlay legend; run; quit;