10 COM X[103,22],M[19,19],U[19,19],Q[20],V[20],P[78] 30 COM M$[60],N$[72] 40 COM N,K,N8,K8,N9,K9,Q9,Q7,Q5,Q4,Q3,Q2,Q1 45 COM I3,I4,U9,X$[20] 50 REM:10APR74 60 REM:Q1=1 FOR>REGR;=2FOR>COEFF;=3FOR>ANOV;=4FOR>SUMM 150 DIM A[20],A$[12],C$[12] 200 GOTO Q1 OF 205,960,960,960 205 IF Q[1]#0 THEN 250 210 PRINT "NO DATA HAS BEEN ENTERED YET. USE" 220 PRINT "'ENTER','ENTS','ENRA','CRSP' OR 'RAND' TO ENTER DATA :" 230 GOTO 9998 250 IF Q[3]=0 THEN 259 252 Q[5]=1 256 Q[7]=259 258 GOTO 9938 259 IF Q9=1 THEN 280 260 PRINT "* DEP. VAR. = "; 270 GOTO 300 280 PRINT "* DEPENDENT VARIABLE (NAME OR COLUMN NUMBER) = "; 300 ENTER 30,Q8,C$ 305 PRINT 310 IF Q8>0 THEN 340 320 GOSUB 4000 330 GOTO 260 340 GOSUB 7000 345 IF Z9=0 THEN 260 350 D=Z9 355 IF Q9=1 THEN 380 360 PRINT "HOW MANY INDEP. VAR. "; 370 GOTO 390 380 PRINT "HOW MANY INDEPENDENT VARIABLES "; 390 INPUT K8 391 IF K8 <= K-1 THEN 395 392 PRINT K-1"OR FEWER INDEP. VAR. POSSIBLE." 393 GOTO 360 395 IF K8=0 THEN 9000 396 IF Q3=0 THEN 411 397 FOR I1=1 TO K8 398 PRINT USING 399;I1 399 IMAGE #,"INDEP. VAR.",XDD,X,"= " 400 INPUT C$ 401 GOSUB 7000 402 IF Z9=0 THEN 398 408 A[I1]=Z9 409 NEXT I1 410 GOTO 452 411 IF Q9=3 THEN 440 412 PRINT "GIVE COLUMN NUMBER(S) OF INDEPENDENT VARIABLE(S)" 420 PRINT "SEPARATED BY COMMA(S) :" 430 GOTO 450 440 PRINT "INDEP. VAR(S). = "; 450 MAT INPUT A[K8] 452 MAT V=ZER 453 Q[2]=0 454 FOR I=1 TO K8 456 IF D=A[I] THEN 484 472 IF A[I] <= K THEN 477 474 IF A[I]=K9 OR A[I]=K9+1 THEN 7020 476 GOTO 7054 477 V[I]=A[I] 478 NEXT I 479 FOR I=1 TO K8-1 480 FOR I1=I+1 TO K8 482 IF A[I]#A[I1] THEN 488 484 PRINT "DUPLICATE VARIABLES GIVEN."'10'13'7"TRY AGAIN!" 486 GOTO 280 488 NEXT I1 490 NEXT I 492 V[K8+1]=D 500 N8=0 510 FOR I=Q4 TO N 520 N8=N8+X[I,K9+2] 530 NEXT I 550 FOR I=1 TO K8 560 FOR J=1 TO K8 570 U[I,J]=M[V[I],V[J]] 580 NEXT J 590 NEXT I 600 FOR I=1 TO K8 610 U[I,K8+1]=M[V[I],V[K8+1]] 620 U[K8+1,I]=U[I,K8+1] 630 NEXT I 640 U[K8+1,K8+1]=1 645 K6=K8 650 FOR I=1 TO K6 660 GOSUB 4500 670 NEXT I 680 Q[2]=1 682 Q[20]=K8 684 PRINT "COMPUTING..."; 685 GOSUB 8000 687 PRINT 690 PRINT "ANALYZING RESIDUALS..."; 695 GOTO 9931 700 PRINT LIN(1),"VARIABLE B(STD.V) B STD.ERROR(B) T" 702 PRINT 705 B0=0 706 V0=U[K8+1,K8+1]/(N8-K6-1) 710 FOR I=1 TO K6 720 I1=U[I,K8+1]*X[N9+2,V[K8+1]]/X[N9+2,V[I]] 730 B0=B0+I1*X[N9+1,V[I]] 740 I2=SQR(U[I,I]*V0)*X[N9+2,V[K8+1]]/X[N9+2,V[I]] 750 IF Q3=1 THEN 790 760 PRINT USING 770;V[I],U[I,K8+1],I1,I2,I1/I2 770 IMAGE 3X,2D,4X,3D.4D,2(2X,D.4DE),X,3D.3D 780 GOTO 840 790 IF V[I]>10 THEN 830 800 PRINT USING 810;M$[6*V[I]-5,6*V[I]],U[I,K8+1],I1,I2,I1/I2 810 IMAGE X,6A,2X,3D.4D,2(2X,D.4DE),X,3D.3D 820 GOTO 840 830 PRINT USING 810;N$[6*(V[I]-10)-5,6*(V[I]-10)],U[I,K8+1],I1,I2,I1/I2 840 NEXT I 850 B0=X[N9+1,V[K8+1]]-B0 855 D=0 860 FOR I=1 TO K6 870 FOR J=1 TO K6 880 D=D+U[I,J]*(X[N9+1,V[I]]/X[N9+2,V[I]])*X[N9+1,V[J]]/X[N9+2,V[J]] 890 NEXT J 900 NEXT I 910 V1=SQR(V0*X[N9+2,V[K8+1]]^2*(D+1-1/N8)) 920 PRINT USING 930;B0,V1,(B0/V1) 930 IMAGE "CONSTANT 0",4X,2(2XD.4DE),X3D.3D 950 RETURN 960 IF Q[2]#0 THEN 990 970 PRINT "EXECUTE 'REGR' FIRST TO DEFINE REGRESSION EQUATION" 980 GOTO 9998 990 IF Q[4]=0 THEN 998 992 Q[5]=0 996 Q[7]=998 997 GOTO 9938 998 K6=Q[20] 999 GOTO Q1 OF 205,1000,1116,1322 1000 GOSUB 700 1010 GOTO 9998 1116 GOSUB 1120 1117 GOTO 1140 1120 T1=(N8-1)*X[N9+2,V[K8+1]]^2 1130 R2=U[K8+1,K8+1]*T1 1135 RETURN 1140 GOSUB 1150 1142 GOTO 9998 1150 R1=T1-R2 1152 F=(R1/K6)/(R2/(N8-K6-1)) 1155 PRINT 1156 PRINT " SOURCE SS DF MS F" 1160 PRINT 1170 PRINT USING 1180;R1,K6,(R1/K6) 1180 IMAGE #,"REGRESSION",2XD.5DE,2X3D,2XD.5DE 1182 IF F>999 THEN 1188 1184 PRINT USING "2X3D.2D";F 1186 GOTO 1190 1188 PRINT USING "2XD.4DE";F 1190 PRINT USING 1200;R2,(N8-K6-1),R2/(N8-K6-1) 1200 IMAGE "RESIDUALS",3XD.5DE,2X3D,2XD.5DE 1210 PRINT USING 1220;T1,(N8-1),T1/(N8-1) 1220 IMAGE " TOTAL",5XD.5DE,2X3D,2XD.5DE 1230 RETURN 1322 GOSUB 1120 1324 GOSUB 1330 1326 GOTO 9998 1330 R0=1-R2/T1 1340 R3=1-(N8-1)*(1-R0)/(N8-K6-1) 1350 R3=0 MAX R3 1360 R1=SQR(R3) 1370 PRINT LIN(1);SPA(12),"MULTIPLE R R-SQUARE" 1380 PRINT USING 1390;SQR(R0),R0 1390 IMAGE "UNADJUSTED",4X,D.4D,5X,D.4D 1400 PRINT USING 1410;R1,R3 1410 IMAGE " ADJUSTED",5X,D.4D,5X,D.4D 1420 PRINT " STD. DEV. OF RESIDUALS =",SQR(R2/(N8-K6-1)) 1430 RETURN 3999 PRINT C$" IS NOT A VALID NAME OR NUMBER" 4000 PRINT "NEED HELP "; 4001 INPUT C$ 4002 IF C$[1,1]="N" THEN 4190 4003 PRINT 4004 PRINT "DATA IN COL(S). 1 TO"K 4005 IF Q3=1 THEN 4100 4006 PRINT "NO NAMES GIVEN FOR VARIABLES, BUT" 4010 PRINT '10'13"FOR YOUR REFERENCE :" 4040 PRINT '10"COLUMN 1ST OBSERVATION" 4050 FOR J=1 TO K 4060 PRINT USING "2XDD,6XD.5DE";J,X[Q4,J] 4070 NEXT J 4080 GOTO 4185 4100 PRINT "THEY ARE :" 4110 PRINT LIN(1);"COLUMN NAME" 4120 FOR J=1 TO K 4130 IF J>10 THEN 4170 4140 PRINT USING 4150;J,M$[6*J-5,6*J] 4150 IMAGE 2XDD,4X6A 4160 GOTO 4180 4170 PRINT USING 4150;J,N$[6*(J-10)-5,6*(J-10)] 4180 NEXT J 4185 PRINT 4190 RETURN 4500 C=1/U[I,I] 4510 U[I,I]=C 4520 FOR I1=1 TO K8+1 4530 IF I1=I THEN 4580 4540 FOR J1=1 TO K8+1 4550 IF J1=I THEN 4570 4560 U[I1,J1]=U[I1,J1]-C*U[I1,I]*U[I,J1] 4570 NEXT J1 4580 NEXT I1 4590 FOR I1=1 TO K8+1 4600 IF I1=I THEN 4630 4610 U[I,I1]=U[I,I1]*C 4620 U[I1,I]=-U[I1,I]*C 4630 NEXT I1 4640 RETURN 7000 IF Q3=0 THEN 7016 7004 FOR I=1 TO 10 MIN K 7005 IF M$[6*I-5,6*I]=C$[1,6] THEN 7062 7006 NEXT I 7008 IF K<11 THEN 7016 7010 FOR I=1 TO K-10 7012 IF N$[6*I-5,6*I]=C$[1,6] THEN 7066 7014 NEXT I 7016 IF C$[1,6]#"FITTED" THEN 7032 7020 IF Q[2]=0 THEN 7054 7021 PRINT "TO USE 'FITTED' (COL."K9") OR 'RESIDUAL' (COL."K9-1")" 7022 PRINT "VALUES OF PREVIOUS REGRESSION, FIRST SAVE THESE VALUES" 7024 PRINT "IN A COL. OF THE DATA GROUP OF COLUMNS." 7030 GOTO 7055 7032 IF C$[1,6]#"RESIDU" THEN 7036 7034 GOTO 7020 7036 RESTORE 7038 FOR I=1 TO K9+1 7040 READ A$ 7042 IF A$=C$ THEN 7048 7044 NEXT I 7046 GOTO 7057 7048 IF I