)FIIA>AQ2)FIIA&II200II6&II2?@@?IIA)F&II2AAAA0/II)000000&II2IIA)FIIA >AA>bQIF66"AI6B@ >AA>~AA>IIA>AA"yy 1 ! "REGRES" IS CHAINED FROM "72PLOT" VIA "AXES",LABELS", AND "POINTS" SEE DOCUMENTATION OF "72PLOT" FOR RUN-IMPLEMENTATION. 10 ON ERROR GOTO 32600 : C$=SYS(CHR$(6%)+CHR$(-7%)) !ENABLE C-TRAP 20 DEF FNF$(M%,N%,X) !CONFIDENCE LEVEL FUNCTION 30 IF N%>4% THEN 90 40 ON N% GOTO 50 , 60 , 70 , 80 50 L9= 405300: GOTO 100 60 L9= 999: GOTO 100 70 L9= 167: GOTO 100 80 L9= 75: GOTO 100 90 L9= 48 100 IF X>L9 THEN 400 110 L9%= 2%*(M%/2%)-M%+2%: L8%= 2%*(N%/2%)-N%+2% 120 L9= X*M%/N%: L8= 1/(1+L9) 130 IF L9%<>1% THEN 170 140 IF L8%<>1% THEN L7= SQR(L9*L8): L5= .5*L7*L8: GOTO 190 150 L7= SQR(L9): L6= .3183098862: L5= L6*L7*L8: L7=2*L6*ATN(L7) 160 GOTO 190 170 IF L8%<>1% THEN L7= L8*L9: L5=L7*L8: GOTO 190 180 L7= SQR(L8): L5= .5*L7*L8*L9: L7= 1-L7 190 I9%= L8%-2%: L6= L8*L8*L9 200 FOR I8%= L9% TO M%-2% STEP 2% 210 I9%= I9%+2%: IF I9%>N%-2% THEN 320 220 I7%= I8%+I9% 230 L7= L7-2*L5*(1-L8*L9*I7%/I9%)/I8% 240 L5= L5*L6*(I7%+2%)*I7%/(I8%*I9%) 250 IF L5<.1E-25 THEN 370 260 NEXT I8% 270 FOR I8%= M%+L8%-L9% TO N%-2% STEP 2% 280 L7= L7+2*L5/I8%: L5= L5*L8*(M%+I8%)/I8% 290 IF L5<.1E-25 THEN 370 300 NEXT I8% 310 GOTO 370 320 L6= N%+L9%-L8% 330 FOR I8%= L6 TO M%-2% STEP 2% 340 L7= L7-2*L5/I8%: L5= L5*L8*L9*(N%+I8%)/I8% 350 IF L5<.1E-25 THEN 370 360 NEXT I8% 370 IF L7<.95 THEN FNF$ = "ns ":GOTO 410 !WORSE THAN 95% 380 IF L7<.99 THEN FNF$ = "* ":GOTO 410 !BETWEEN 95 AND 99% 390 IF L7<.999 THEN FNF$ = "** ":GOTO 410 !BETWEEN 99 AND 99.9% 400 FNF$ = "***" !BETTER THAN 99.9% 410 FNEND 420 DEF FNX(I)=INT((I-L1)/(U1-L1)*(9999%-B1%-B%)+B1%+.5) !X-SCALING 430 DEF FNY(I)=INT((I-L2)/(U2-L2)*(R*9999%-2%*B%)+B%+.5) !Y-SCALING 440 DEF FNA(I,J%)=INT(I*10^J%+.5)/10^J% !TRUNCATION 460 DIM D%(32%),A%(30%) 470 OPEN "COMVAR.DAT" FOR INPUT AS FILE 2% 480 INPUT #2%,L1,U1,K1,L2,U2,K2,F%,B%,B1%,R,R1,M1%,M2%,S%,P$,D$,G$ 490 CLOSE 2% 500 CHANGE P$ TO D% : GOSUB 1230 510 CHANGE D% TO P$ : CHANGE D$ TO D% : GOSUB 1230 520 CHANGE D% TO D$ : OPEN P$ AS FILE 1%:IF INSTR(1%,P$,":")>0% THEN 540 530 INPUT #1%,Z$ : GOTO 530 !POINT TO END OF FILE 540 OPEN D$ FOR INPUT AS FILE 3% : X1,X2,Y1,Y2,A1=0 550 OPEN "NUMBER.DAT" AS FILE 4% : INPUT #4%, N% : CLOSE 4% : N=N% 560 IF K1=1E37 OR K2=1E37 THEN INPUT "REGRESSION TO BE RUN ON LOG OR LIN DATA"; Q$ 570 for I%=1% to n% 580 INPUT #3%,X,Y,Z1%,Z2%,Z3%,Z4 590 IF Q$="LIN" THEN 620 !OPTIONAL 600 IF K1=1E37 THEN X=LOG10(X) !LOG 610 IF K2=1E37 THEN Y=LOG10(Y) !CONVERSIONS 620 X1=X1+X !Sum x 640 Y1=Y1+Y !Sum y 660 X2=X2+(X*X) !SS x 670 Y2=Y2+(Y*Y) !SS y 680 A1=A1+(X*Y) !Sum xy 690 next I% 700 B1=A1-((X1*Y1)/N) : B2=B1*B1 : C1=X2-((X1*X1)/N) : C2=Y2-((Y1*Y1)/N) :C3=C1*C2 : R1=B2/C3 710 R2=SQR(R1) ! Correlation coeff 720 b3=b1/C1 ! slope y.x 730 x3=X1/n ! Mean x 740 y3=Y1/n ! Mean y 750 y4=y3-(b3*x3) ! Y-Intercept 760 X4=X3-Y3/B3 ! X-INTERCEPT 770 !*** Significance Testing *** 780 d2=(1-r1)*C2 ! SS devn.from regression 790 E1=(C2-d2)/(n-2) ! Regression variance y.x 800 d3=SQR(E1) ! Standard error of estimate 810 r3=r1*C2 ! SS regression 820 d4=d2/(n-2) ! MS devn.from regression 830 F1=R3/D4 ! F-RATIO 840 S1=D3/X2 ! STANDARD ERROR OF B 850 S2=SQR(D3/N) : PRINT 860 PRINT "CORRELATION COEFFICIENT =";FNA(R2,2%) 870 PRINT "COEFFICIENT OF DETERMINATION=";FNA(R1,2%) 880 PRINT "STANDARD ERROR OF THE ESTIMATE (IN Y-UNITS) = +/-";FNA(D3,4%) 890 & "BEST STRAIGHT LINE:- Y=";FNA(Y4,4%);"+ X * (";FNA(B3,4%);"+/-"; FNA(S1,4%);")" : PRINT 900 IF (K1=1E37 OR K2=1E37) AND Q$="LIN" THEN &"LINEAR STRAIGHT LINE NOT PLOTTABLE ON LOG FORMAT": INPUT "RERUN REGRESSION";Q$ : IF Q$="Y" THEN 540 ELSE 1060 910 INPUT "PLOT THIS LINE";Q$ : IF Q$<>"Y" THEN 1060 920 INPUT "PENCHANGE";Q$:IF Q$>"" THEN &" TO CONTINUE":INPUT Q$ : PRINT #1%,"PLTL" 930 Y8=B3*L1+Y4 : X8=(L2-Y4)/B3 : Y9=B3*U1+Y4 : X9=(U2-Y4)/B3 940 S%=10% !NO. OF STEPS 950 IF Y8U2 THEN J=X9 : GOTO 980 970 J=L1 980 IF Y9>U2 THEN K=X9 : GOTO 1010 990 IF Y9"Y" THEN 1090 ELSE PRINT : PRINT "-"; FOR I%=1% TO 65%:PRINT :PRINT "SOURCE","D.F.","S.S.","M.S.","F - RATIO" : PRINT "-"; FOR I%=1% TO 65% 1080 PRINT : PRINT : PRINT "REGRESSION"," 1",R3,R3,F1;FNF$(1,(N%-2%),F1) :& : PRINT "ERROR",(N-2),D2,D4 : PRINT "-"; FOR I%=1% TO 65% : PRINT : PRINT "TOTAL",(N-1),C2 : PRINT "-"; FOR I%=1% TO 65% : PRINT : PRINT : PRINT 1090 INPUT "TABLE OF RESIDUALS";Q$ : IF Q$<>"Y" THEN 1150 ELSE PRINT : PRINT "OBSERVN. NO."," X","ACTUAL Y","PREDICTED Y","RESIDUAL Y": PRINT : OPEN D$ FOR INPUT AS FILE 3% 1100 for I%=1% to N% : INPUT #3%,X,Y,Z1%,Z2%,Z3%,Z4 1110 Z=Y4+(B3*X) ! PREDICTED Y 1120 W=Y-Z ! RESIDUAL Y 1130 PRINT I%,X,Y,Z,W 1140 next i% 1150 &:&:&"NAME OF NEXT DATA FILE";:INPUT LINE D1$ : CHANGE D1$ TO D% : D%(0%)=D%(0%)-2% : IF D%(0%)=0% THEN 1180 ELSE GOSUB 1250 1160 CHANGE D% TO D1$ : OPEN "COMVAR.DAT" FOR OUTPUT AS FILE 2% : %,L1","U1","K1","L2","U2","K2","F%","B%","B1%","R"," R1","M1%","M2%","S%","P$","D1$","G$ : CLOSE 2% 1170 CLOSE 1% : CHAIN "POINTS[10,30]" 1180 PRINT "PLOT COMPLETE" : IF INSTR(1%,D$,"[")>0% THEN 1210 !DISABLE DATAFILE KILL 1190 INPUT "KILL DATA FILE";Q$ : IF Q$<>"Y" THEN 1210 1200 KILL D$ 1210 KILL "NUMBER.DAT" : KILL "COMVAR.DAT" : CLOSE 1% : IF INSTR(1%,P$,":")>0% THEN GOSUB 32740 1220 GOTO 32766 1230 FOR I%=1% TO D%(0%) : IF D%(I%)=42% THEN D%(I%)=44% !CHANGE * TO , 1240 NEXT I% : RETURN 1250 FOR I%=1% TO D%(0%) : IF D%(I%)=44% THEN D%(I%)=42% !CHANGE , TO * 1260 NEXT I% : RETURN 32600 IF (ERR=11% OR ERR=59%) AND ERL=580% THEN RESUME 700 ELSE IF (ERR=11% OR ERR=59%) AND ERL=530% THEN RESUME 540 ELSE GOTO 32760 32700 !SUBROUTINE TO DEASSIGN PLOTTER OR DEVICE ON ERROR OR CTRL/C 32740 CHANGE P$ TO D% : A%(0%)=30% : A%(1%)=6% : A%(2%)=11% : A%(I%)=0% FOR I%=3% TO 30% : A%(23%)=D%(1%) : A%(24%)=D%(2%) : IF D%(3%)=58% THEN 32745 ELSE A%(25%)=VAL(CHR$(D%(3%))): A%(26%)=255% 32745 CHANGE A% TO A1$ : S$=SYS(A1$) : &P$" DEASSIGNED" : RETURN 32750 IF ERR>0% AND ERR<>28% THEN E$=SYS(CHR$(6%)+CHR$(9%)+CHR$(ERR)) : E$=MID(E$,3%,INSTR(3%,E$,CHR$(0%))-3%) : &"***"E$ 32755 RETURN 32760 IF INSTR(1%,P$,":")=0% THEN GOSUB 32750 ELSE GOSUB 32740 32762 IF INSTR(1%,P$,":")>0% THEN GOSUB 32750 32765 RESUME 32766 32766 CLOSE I% FOR I%=1% TO 12% 32767 END U:1*"