/* Double Exponential Smoothing */ /* (Forecast Smoothing) */ new; cls; let data[12,1]= 23 25 36 31 26 28 48 36 31 42 53 43 ; t=seqa(1,1,rows(data)); library pgraph; graphset; _pltype=6; _plegctl=1; _plegstr="actual\000predicted"; title("Double Exponential"); alpha=0.2; xy(t,data~des(data,alpha)); proc des(x,alpha); local n,m1,m2,m,i; n=rows(x); m1=zeros(n,1); m1[1]=x[1]; i=2; do while i<=n; m1[i]=alpha*x[i-1]+(1-alpha)*m1[i-1]; i=i+1; endo; m2=zeros(n,1); m2[1]=m1[1]; i=2; do while i<=n; m2[i]=alpha*m1[i-1]+(1-alpha)*m2[i-1]; i=i+1; endo; m=m1*2-m2; retp(m); endp;