1 WAIT 200:PRINT "STATISTICAL ANALYSIS (4K)":PRINT "Copr. 1982 Tandy Corp.
3 DIM A(10),A$(10),X1(5),X2(6),N1(5)
4 WAIT 0:INPUT "# OF VARIABLES ? ";V:ON VGOTO 6,7,8
5 GOTO 4
6 DIM X(81,1):GOTO 10
7 DIM X(51,2):GOTO 10
8 DIM X(36,3)
10 N=0:Q=0
15 "D"WAIT 0:FOR K=1TO V:PRINT "REC";N+1;"/ VAR";K;:INPUT " ? ";X(N+1,K):PRINT :NEXT K:N=N+1:GOTO 15
30 "K"WAIT 0:PRINT :WAIT :PRINT STR$ N;" RECORDS ";V;" VARIABLE(S)":END
40 "H":WAIT :P=0:GOTO 55
50 "J"P=1
55 B=1:E=N:INPUT "BEGIN AT ? ";B:E=B:INPUT "END AT ? ";E:IF E>NTHEN LET E=N
57 IF P=1THEN LPRINT "RECORD/VARIABLE":LPRINT " "
60 FOR J=BTO E:FOR K=1TO V
65 IF P=0PRINT "REC";J;" VAR";K;" =";X(J,K)
70 IF P=1LPRINT STR$ J;"/";STR$ K;" =";X(J,K)
75 NEXT K:IF P=1LPRINT " "
80 NEXT J:END
95 "G"INPUT "UPDATE # ? ";B:GOTO 98
96 END
98 WAIT 0:FOR K=1TO V:PRINT "VAR";K;" =";X(B,K);:INPUT " NEW ? ";X(B,K)
100 PRINT " ":NEXT K:END
105 "F"INPUT "DELETE # ? ";B:GOTO 108
107 END
108 IF B=NTHEN 115
110 FOR J=BTO N-1:FOR K=1TO V:X(J,K)=X(J+1,K):NEXT K:NEXT J
115 N=N-1:GOTO 30
130 "L"INPUT "FILENAME ? ";ID$:INPUT #ID$;N,X(*):GOTO 30
135 END
140 "="WAIT 0:INPUT "SAVE AS ? ";ID$:PRINT #ID$;N,X(*):END
145 END
150 Z=1:IF V=1RETURN 
153 INPUT "WHICH IS DV ? ";Z:RETURN 
155 GOTO 153
160 INPUT "WHICH IS IV ? ";W:RETURN 
165 GOTO 165
200 S=0:T=0:L=X(1,Y):H=X(1,Y):FOR J=1TO N
205 IF X(J,Y)>HTHEN LET H=X(J,Y)
210 IF X(J,Y)<LTHEN LET L=X(J,Y)
215 NEXT J:FOR J=1TO N:T=T+X(J,Y):NEXT J:M=T/N
220 FOR J=1TO N:S=S+(X(J,Y)-M)^2:NEXT J
225 RETURN 
250 U=0:FOR J=1TO N:U=U+(X(J,Z)*X(J,W)):NEXT J:RETURN 
300 "Z"GOSUB 150:Y=Z:GOSUB 200:A(1)=M:A$(1)="MEAN":A(2)=T:A$(2)="SUM"
310 A(3)=S:A$(3)="SUMSQ"
320 A(6)=L:A$(6)="MINIMUM":A(7)=H:A$(7)="MAXIMUM"
330 A(4)=(S/N):A$(4)="SD":A(5)=(S/(N-1)):A$(5)="SDest":Q=7:O=0:END
350 "X":GOSUB 150:Y=Z:I=1:INPUT "# INTERVALS ? ";I
360 GOSUB 200:R=H-L+1
375 FOR J=1TO I:A(J)=0:NEXT J:FOR J=1TO N:M=L:FOR K=1TO I-1:M=M+R/I
380 IF X(J,Y)<=MTHEN LET A(K)=A(K)+1:GOTO 390
385 NEXT K:A(I)=A(I)+1
390 NEXT J:M=L
395 FOR J=1TO I:M=M+R/I:A$(J)="(f)"+STR$ M:A$(J+I)="(%)"+STR$ M:A(J+I)=A(J)/N*100:NEXT J
398 A$(I)="(f)"+STR$ H:A$(2*I)="(%)"+STR$ H:Q=2*I:O=1:A$(0)="MINIMUM":A(0)=L:END
400 LPRINT :LPRINT :R=A(1):FOR J=1TO I:IF A(J)>RTHEN LET R=A(J)
403 NEXT J:GRAPH 
405 FOR J=1TO I:K=A(J)/R*216:RLINE -(K,0)-(0,-50)-(-K,0)-(0,50)-(0,-50)
410 NEXT J:LPRINT :TEXT :LPRINT :END
420 "C":IF V<2THEN 2020
425 GOSUB 150:GOSUB 160:Y=W:GOSUB 200:Q=M:C=S:D=T:A=L:H1=H
430 Y=Z:GOSUB 200:GOSUB 250:F=U-D*T/N
435 R=F/(C*S):A(1)=R:A$(1)="r":A$(2)="SLOPE":A$(3)="Y-INT"
440 G=F/C:A(2)=G:P1=M-G*Q:A(3)=P1:A$(4)="t"
445 A(4)=C/(N-1)/N+S/(N-1)/N-2*R*(C/(N-1)/N)*(S/(N-1)/N)
450 A(4)=(M-Q)/(A(4)):A(5)=N-1:A$(5)="df":O=2:Q=5:END
455 FOR J=1TO 13:LPRINT :NEXT J:GRAPH :SORGN 
465 LINE (0,216)-(0,0)-(216,0)-(0,0):RX=H1-A:RY=H-L
470 FOR J=1TO N:K=(X(J,Z)-L)/RY*205:I=(X(J,W)-A)/RX*205
475 GLCURSOR (I,K):LPRINT "o":NEXT J:J=A:I=0
478 J=J+RX/205:I=I+1:GOSUB 500:IF K<0THEN 478
480 IF K>205THEN 478
482 B=I:C=K:J=H1:I=206
484 J=J-RX/205:I=I-1:GOSUB 500:IF K<0THEN 484
486 IF K>205THEN 484
490 LINE (B,C)-(I,K):GLCURSOR (0,0):TEXT :LPRINT :LPRINT "X:";A;" TO";H1
495 LPRINT :LPRINT "Y:";L;" TO";H:LPRINT :END
500 K=((J*G+P1)-L)/RY*205:RETURN 
525 "V":INPUT "X ? ";B:IF O>1PRINT "Y^ =";B*G+P1
530 END
550 T=0:S=0:M=0:U=0:C=0:D=0:G=0:H=0:L=0:O=0:X2(6)=0
560 FOR J=1TO 5:X1(J)=0:X2(J)=0:N1(J)=0:NEXT J:RETURN 
600 "N":IF V<2THEN 2020
605 GOSUB 550:GOSUB 150:GOSUB 160:WAIT 0
610 INPUT "# OF LEVELS ? ";K:FOR J=1TO K:PRINT "CODE FOR LEVEL";J;:INPUT " ? ";A(J):CLS :NEXT J
620 WAIT :FOR J=1TO N:FOR I=1TO K:IF X(J,W)=A(I)THEN 630
625 NEXT I:GOTO 640
630 X1(I)=X1(I)+X(J,Z):X2(I)=X2(I)+X(J,Z)^2:N1(I)=N1(I)+1
640 NEXT J:FOR I=1TO K:M=M+N1(I):U=U+X1(I):C=C+X2(I):NEXT I
645 CLS :A(1)=C-U^2/M:FOR I=1TO K:H=H+X1(I)^2/N1(I)
655 NEXT I:H=H-U^2/M:H=(C-U^2/M)-H
657 A$(1)="SSt":A$(2)="SSb":A$(3)="SSw"
672 A(3)=H:A(2)=A(1)-A(3)
675 A(4)=M-1:A(5)=K-1:A(6)=M-K:A$(4)="DFt":A$(5)="DFb":A$(6)="DFw"
680 A(7)=A(2)/A(5):A(8)=A(3)/A(6):A$(7)="MSb":A$(8)="MSw"
690 A(9)=A(7)/A(8):A$(9)="F":Q=9:END
700 "B"IF V<3THEN 2020
710 GOSUB 550:GOSUB 150:A(1)=Z:A(2)=ABS (Z-2)+1:A(3)=6-Z-A(2)
712 FOR J=1TO N:FOR I=1TO 3:X1(I)=X1(I)+X(J,A(I))/N:NEXT I:NEXT J
715 FOR J=1TO N:L=0:FOR I=1TO 3:FOR K=ITO 3:L=L+1
720 X2(L)=X2(L)+(X(J,A(I))-X1(I))*(X(J,A(K))-X1(K))
725 NEXT K:NEXT I:NEXT J:A$(1)="b1":A$(2)="b2":A$(3)="a"
730 A(1)=(X2(6)*X2(2)-X2(5)*X2(3))/(X2(4)*X2(6)-X2(5)^2)
735 A(2)=(X2(4)*X2(3)-X2(5)*X2(2))/(X2(4)*X2(6)-X2(5)^2)
740 A(3)=X1(1)-A(1)*X1(2)-A(2)*X1(3)
745 A(4)=A(1)*X2(2)+A(2)*X2(3):A(5)=X2(1)-A(4):A$(4)="SSreg":A$(5)="SSres"
750 A(6)=(A(4)/2)/(A(5)/(N-3)):A$(6)="F"
760 A(7)=2:A(8)=N-3:A$(7)="DFreg":A$(8)="DFres"
770 A(9)=A(4)/X2(1):A$(9)="Rsq":Q=9:END
2000 "A"WAIT :IF Q<1THEN 2015
2001 K=1:IF O=1THEN LET K=0
2003 FOR J=KTO Q:PRINT A$(J);" =":PRINT A(J):NEXT J:END
2010 "S"TEXT :IF Q<1THEN 2015
2012 K=1:IF O=1THEN LET K=0
2013 FOR J=KTO Q:LPRINT :LPRINT A$(J);" =":LPRINT STR$ A(J):NEXT J
2014 ON OGOTO 400,455
2015 END
2020 PRINT "WRONG # OF VARIABLES!"
