10 ' ***************************************** 20 ' * * 30 ' * Data Reduction Program * 40 ' * by * 50 ' * Jim Barbarello * 60 ' * * 70 ' * Converted to MBASIC 5.1 from program * 80 ' * in 80 Microcomputing of 1/81 p.232 * 90 ' * by Ray Glueck * 100 ' * * 110 ' ***************************************** 120 ' 130 CLEAR :PRINT CHR$(12):PRINT 140 PRINT TAB(10) " D A T A R E D U C T I O N P R O G R A M" 150 PRINT TAB(18) "(for use with line printer)":PRINT 160 PRINT :INPUT"Do you want a table of CHI SQUARE values";Q$ 170 IF LEFT$(Q$,1)="Y" OR LEFT$(Q$,1)="y" THEN GOSUB 1210 180 PRINT:PRINT"Input the data directly.":PRINT 190 INPUT"Enter the number of data points ";L:DIM A(L+9),B(11),C(11) 200 IF L<=0 THEN PRINT:PRINT"IMPOSSIBLE":PRINT:STOP 210 IF L>=1001 THEN PRINT:PRINT"SORRY - Can't handle more than 1000 entries": STOP 220 PRINT CHR$(12) 230 FOR I=1 TO L:PRINT"#";I;": ";:INPUT A(I):NEXT I 240 INPUT"Data correction required (YES/NO) ";Q$ 250 IF LEFT$(Q$,1)="N" OR LEFT$(Q$,1)="n" THEN 300 260 PRINT CHR$(12):LINE INPUT"Enter Data # to be corrected ";F$ 270 F=VAL(F$) 280 PRINT A(F): INPUT"corrected value = ";G 290 A(F)=G:PRINT CHR$(12):GOTO 240 300 HI=A(1):LO=A(1) 310 FOR I=2 TO L 320 IF A(I)>HI THEN HI=A(I) 330 IF A(I) after question mark appears." 410 FOR I=1 TO 10:INPUT T$(I) 420 IF T$(I)="" THEN LPRINT CHR$(138):GOTO 440 421 XX=LEN(T$(I)) 430 LPRINT TAB((80-XX)/2) T$(I):NEXT I 440 PRINT CHR$(12):LPRINT"Data :":PRINT 450 FOR I=1 TO 1000:LPRINT TAB(10*J);A(I);:J=J+1 460 IF J=6 THEN J=0 470 IF I=L THEN LPRINT:GOTO 490 480 NEXT 490 Q=M-2.5*U:V=M+2.5*U:W=M-3*U:C=M+3*U 500 PRINT CHR$(12):LPRINT CHR$(138):LPRINT TAB(23);"DATA STATISTICS": LPRINT CHR$(138) 510 LPRINT"Low Value = ";LO:LPRINT"High Value = ";HI:LPRINT"Mean = ";M 520 LPRINT"Variance = ";T:LPRINT"Standard Deviation = ";U:LPRINT CHR$(138) 530 LPRINT"The expected limits are ";W;" to ";C 540 PRINT CHR$(12):PRINT"CALCULATING...":D=Q:H=U/2 550 FOR I=1 TO L 560 IF (A(I)<=D) AND (A(I)>(D-H)) THEN B(K)=B(K)+1 570 NEXT I 580 K=K+1:D=D+H:IF K=11 THEN 600 590 GOTO 550 600 FOR I=1 TO L 610 IF A(I)<(Q-H) THEN B(0)=B(0)+1 620 IF A(I)>V THEN B(11)=B(11)+1 630 NEXT I:PRINT CHR$(12):HI=B(0) 640 FOR I=0 TO 11 650 IF B(I)>HI THEN HI=B(I) 660 NEXT I 670 PRINT"Press =J THEN LPRINT TAB(I*5+8);CHR$(42); 770 NEXT I:LPRINT CHR$(10) 780 NEXT J 790 LPRINT STRING$(64,45) 800 FOR I= 1 TO 12:LPRINT TAB((I-1)*5+7);I;:NEXT 810 LPRINT CHR$(10):LPRINT TAB(31);"Interval":LPRINT CHR$(138) 820 LPRINT"Interval","Ends At";TAB(37);"# of Points in Interval" 830 LPRINT 840 D=Q 850 FOR I= 1 TO 12 860 IF (I=1)+(I=12) THEN 890 870 LPRINT I,D;TAB(37);B(I-1) 880 GOTO 910 890 IF I=1 THEN LPRINT I,"ALL PTS <= ";TAB(37);B(0) 900 IF I=12 THEN LPRINT I,"ALL PTS > ";(D-H);TAB(37);B(11) 910 D=D+H:NEXT I 920 FOR I=1 TO 5 930 FOR J=0 TO 5 940 IF B(J)>=5 THEN 960 950 B(J+1)=B(J+1)+B(J):B(J)=0 960 NEXT J,I 970 FOR I=1 TO 5 980 FOR J=11 TO 6 STEP -1 990 IF B(J)>5 THEN 1010 1000 B(J-1)=B(J-1)+B(J):B(J)=0 1010 NEXT J,I 1020 FOR I = 1 TO 11 1030 IF B(I)>0 THEN DOF=DOF+1 1040 NEXT I 1050 DOF=DOF-3 1060 C(0)=.0062:C(1)=.0166:C(2)=.044:C(3)=.0919:C(4)=.1498 :C(5)=.1915 1070 C(6)=C(5):C(7)=C(4):C(8)=C(3):C(9)=C(2):C(10)=C(1):C(11)=C(0) 1080 FOR I=0 TO 11 1090 IF B(I)=0 THEN 1120 1100 SUM=((B(I)/L)-C(I))^2/C(I) 1110 CHI=CHI+SUM 1120 NEXT I:LPRINT CHR$(138) 1130 LPRINT"Chi Square Value is ";CHI;" with ";DOF;" Degrees of Freedom" 1140 LPRINT CHR$(138):LPRINT"Lumped Frequency Values: ";CHR$(10) 1150 FOR I=0 TO 11 1160 LPRINT TAB(I*5+7);B(I); 1170 NEXT I 1180 LPRINT CHR$(10) 1190 PRINT"Analysis Completed" 1200 END 1210 LPRINT" TABLE OF CHI SQUARE VALUES":LPRINT 1220 LPRINT" PROBABILITY 90% 80% 70%" 1230 LPRINT"DOF" 1240 LPRINT" 2 0.211 0.446 0.713" 1250 LPRINT" 3 0.584 1.005 1.424" 1260 LPRINT" 4 1.064 1.649 2.195" 1270 LPRINT" 5 1.610 2.343 3.000" 1280 LPRINT" 6 2.200 3.070 3.828" 1290 LPRINT" 7 2.833 3.822 4.671" 1300 LPRINT" 8 3.490 4.594 5.527" 1310 LPRINT" 9 4.168 5.380 6.393" 1320 LPRINT 1330 LPRINT"NOTE: Data is NOT statistically significant for chi-square" 1340 LPRINT"values GREATER than those indicated in the 70% column (for" 1350 LPRINT"the specific DOF ) OR if DOF is LESS than 2. 1360 LPRINT:LPRINT 1370 RETURN  indicated in