peijiamei 发表于 2010-10-9 12:46 
| n | a |
| 1 | 0.1 |
| 2 | 0.2 |
| 3 | 0.3 |
| 4 | 0.4 |
| 5 | 0.5 |
| 6 | 0.6 |
| 7 | 0.7 |
| 8 | 0.8 |
| 9 | 0.9 |
| 10 | 1 |
| 11 | 1.1 |
| 12 | 1.2 |
| 13 | 1.3 |
| 14 | 1.4 |
| 15 | 1.5 |
根据上面的表格求下面的表格。
aa是a的5期移动平均值。
aaa是aa的5期移动平均值。
| n | a | aa | aaa | aaaa |
| 1 | 0.1 | | | |
| 2 | 0.2 | | | |
| 3 | 0.3 | | | |
| 4 | 0.4 | | | |
| 5 | 0.5 | 0.3 | | |
| 6 | 0.6 | 0.4 | | |
| 7 | 0.7 | 0.5 | | |
| 8 | 0.8 | 0.6 | | |
| 9 | 0.9 | 0.7 | 0.5 | |
| 10 | 1 | 0.8 | 0.6 | |
| 11 | 1.1 | 0.9 | 0.7 | |
| 12 | 1.2 | 1 | 0.8 | |
| 13 | 1.3 | 1.1 | 0.9 | 0.7 |
| 14 | 1.4 | 1.2 | 1 | 0.8 |
| 15 | 1.5 | 1.3 | 1.1 | 0.9 |
I give a simple solution here. You may calculate the aaa and aaaa simularly.
data tmp;
do a=0.1 to 1.5 by 0.1;
output;
end;
run;
data tmp2;
set tmp;
la0=a; la1=lag1(a); la2=lag2(a); la3=lag3(a); la4=lag4(a);
if _n_>=5 then aa=sum(a,la1,la2,la3,la4)/n(a,la1,la2,la3,la4);
keep a aa;
run;
proc print; run;