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;