Smooth out data points.
Content
Source Code
2 REM "EXP SMOOTH"
4 PRINT "VARIABLES :": PRINT
5 PRINT "A CONSTANT ALPHA"
6 PRINT "E(I) QUADRATIC ERROR"
7 PRINT "F VALUE ESTIMATED BY"
8 PRINT " THE EXPONENTIAL SMOOTHING"
9 PRINT "M(K) VALUE ESTIMATED BY THE"
10 PRINT " EXPONENTIAL SMOOTHING FOR"
11 PRINT " A SPECIFC ALPHA"
12 PRINT "N NUMBER OF OBSERVATIONS-line 900"
13 PRINT "P NUMBER OF PERIODS TO"
14 PRINT " BASE THE SMOOTHING ON--line 920"
15 PRINT "V(I) OBSERVED VALUE FOR PERIOD I--line 910"
20 PAUSE 340: CLS : PRINT
30 PRINT "TIME SERIES ANALYSIS:"
40 PRINT "EXPONENTIAL SMOOTHING"
50 PRINT "-------------------------------"
60 PRINT : PRINT
65 READ N
70 PRINT "NUMBER OF OBSERVATIONS ";N
80 DIM V(10): DIM M(20): DIM E(20)
90 PRINT
100 FOR I=1 TO N
105 READ V(I)
110 PRINT "VALUE FOR PERIOD ";I;TAB ( 22);V(I)
130 NEXT I
140 PRINT
150 PRINT "NUMBER OF PERIODS RETAINED"
154 READ P
155 PRINT "FOR THE SMOOTHING? ";P
160 REM CALCULATION OF THE AVERAGES WITH DIFFERENT ALPHAS.
170 LET V1=0
180 IF P<1 OR P>=N THEN GO TO 140
190 FOR I=1 TO 10
200 LET M(I)=0: LET E(I)=0
210 NEXT I
220 FOR I=1 TO P
230 LET V1=V1+V(I)
240 NEXT I
250 LET V2=V1/P
260 LET A=0.01: LET I4=2
270 GO SUB 730
280 LET A=0.05: LET I4=3
290 GO SUB 730
300 FOR J=1 TO 9
310 LET A=J/10
320 LET I4=3+J
330 GO SUB 730
340 NEXT J
350 REM FIND THE MINIMUM SUM OF ERROES SQUARED
360 LET I3=2
370 LET E3=E(2)
380 FOR I=3 TO 12
390 IF E(I)>E3 THEN GO TO 420
400 LET E3=E(I)
410 LET I3=I
420 NEXT I
430 IF I3=3 THEN GO TO 470
440 IF I3>3 THEN GO TO 490
450 LET A=0.01
460 GO TO 510
470 LET A=0.05
480 GO TO 510
490 LET A=0.1*(I3-3)
500 PRINT : PRINT : PRINT
510 PRINT "BEST SMOOTHING CONSTANT (ALPHA)"
520 PRINT "(DETERMINED BY FINDING THE MINIMUM OF"
525 PRINT "THE SUM OF THE ERRORS SQUARED) = ";A
530 REM FORECAST OF N+1
540 PRINT : PRINT
550 PRINT "FORECAST FOR PERIOD ";N+1;":"
560 PRINT "------------------------"
570 PRINT " ALPHA VALUE"
580 PRINT "------------------------"
585 DEF FN A(X)=INT (100*X+.5)/100
590 PRINT TAB ( 4);.01;TAB ( 15);FN A(M(2))
600 PRINT TAB ( 4);.05;TAB ( 15);FN A(M(3))
610 FOR I=1 TO 9
620 LET A=I/10
630 LET K=3+I
640 PRINT TAB ( 4);A;TAB ( 15);FN A(M(K))
650 NEXT I
660 PRINT "-------------------------------"
670 PRINT : PRINT
680 PRINT "CHANGE NUMBER OF PERIODS"
690 INPUT "RETAINED FOR THE SMOOTHING? (Y/N) ";C$
700 PRINT
710 IF C$<>"N" THEN RESTORE : GO TO 140
720 GO TO 850
730 REM EXPONENTIAL SMOOTHING SUBROUTINE
740 LET P1=P+1
750 LET E1=0
760 LET F=V2
770 FOR I=P1 TO N
775 LET Z=(F-V(I))^2
780 LET E1=E1+Z
790 LET F=A*V(I)+(1-A)*F
800 IF I<>N THEN GO TO 830
810 LET M(I4)=F
820 LET E(I4)=E1
830 NEXT I
840 RETURN
850 STOP
900 DATA 10
910 DATA 4.30,4.10,3.81,3.14,2.95,2.58,2.49,2.39,1.75,1.66
920 DATA 9