SUB T0TEST(NR,NC) DIM #3,B(250,15) \ & COM V(7,15) \ & H9=.9E-38 ON ERROR GOTO <> <<*BEG>> PRINT "TYPE 'HELP' FOR A LIST OF T-TEST OPTIONS" \ PRINT ! <<*OPT>> INPUT "ENTER YOUR OPTION NUMBER";L$ \ PRINT IF L$<>"HELP" GOTO <> PRINT "THE FOLLOWING FOUR HYPOTHESES ARE OPTIONAL FOR CALCULATION" \ & PRINT "OF T-STATISTIC ON THE MEANS OF SAMPLE VARIABLES A AND B:" \ & PRINT \ & PRINT " 1 - MEAN OF GROUP A VS. A CONSTANT" \ PRINT \ & PRINT " 2 - MEAN OF GROUP A VS. MEAN OF GROUP B, ASSUMING THE TWO"\ & PRINT " POPULATION VARIANCES ARE EQUAL (DIFFERENT SUBJECTS" \ & PRINT " IN EACH GROUP - UNPAIRED T-TEST)" \ PRINT \ & PRINT " 3 - SAME AS 2 ABOVE, BUT ASSUMING THE TWO POPULATION" \ & PRINT " VARIANCES ARE UNEQUAL" \ PRINT \ & PRINT " 4 - MEAN OF A VS. MEAN OF B WHEN ALL SUBJECTS WERE" \ & PRINT " MEASURED UNDER CONDITIONS A AND B. (PAIRED T-TEST)" \ & PRINT \ GOTO <> <<*CKO>> IO=VAL(L$) IF IO<1 OR IO>4 THEN PRINT "PLEASE TYPE 1, 2, 3 OR 4" \ GOTO <> IF IO>1 GOTO <> ! ! OPTION 1 ! <<*OP1>> INPUT "ENTER COLUMN A";IA \ PRINT IF IA<1 OR IA>NC THEN PRINT "COLUMN NUMBER A MUST BE BETWEEN 1 "+ & "AND";NC \ PRINT "PLEASE TRY AGAIN" \ GOTO <> ! <<*IPM>> PRINT "ENTER THE VALUE YOU WISH TO COMPARE AGAINST THE MEAN OF " \ & PRINT "VARIABLE";IA; \ INPUT TM \ PRINT T=((V(4,IA)-TM)/V(5,IA))*SQR(V(0,IA)) \ & NDF=V(0,IA)-1 \ & GOTO <> ! <<*ABI>> INPUT "ENTER THE NUMBERS OF 2 COLUMNS FOR THE T-TEST";IA;IB \ PRINT IF IA<1 OR IB<1 OR IA>NC OR IB>NC OR IA=IB THEN & PRINT "YOUR COLUMN NUMBERS MUST BE BETWEEN 1 AND";NC \ & PRINT "PLEASE TRY AGAIN" \ GOTO <> ON IO GOTO <>,<>,<>,<> ! ! OPTION 2 ! <<*OP2>> XNA=V(0,IA) \ XNB=V(0,IB) \ VA=V(5,IA)**2 \ VB=V(5,IB)**2 \ & NDF=XNA+XNB-2 T=SQR(((XNA-1.)*VA+(XNB-1.)*VB)*(1./XNA+1./XNB)/NDF) \ & T=(V(4,IA)-V(4,IB))/T \ & GOTO <> ! ! OPTION 3 ! <<*OP3>> XNA=V(0,IA) \ XNB=V(0,IB) \ VA=V(5,IA)**2 \ VB=V(5,IB)**2 \ & D=VA/XNA+VB/XNB \ & T=(V(4,IA)-V(4,IB))/SQR(D) \ & NDF=D**2/((VA/XNA)**2/(XNA-1.)+(VB/XNB)**2/(XNB-1.))+.5 ! ! PRINT F FOR OPTIONS 2 AND 3 ! <<*PRT>> IF V(5,IA)>V(5,IB) THEN VL=V(5,IA)**2 \ NL=V(0,IA) \ VS=V(5,IB)**2 \ & NS=V(0,IB) ELSE VL=V(5,IB)**2 \ NL=V(0,IB) \ VS=V(5,IA)**2 \ & NS=V(0,IA) IF VS>0. THEN F=VL/VS \ PRINT \ & PRINT USING "F VALUE FOR RATIO OF VARIANCES (D.F.= ### , ### ) ="+ & " #####.## ",NL-1,NS-1,F \ & PRINT " NOTE: THE PROBABILITY LEVEL FOR THE ABOVE F TEST SHOULD "+ & "BE DOUBLED" GOTO <> ! ! OPTION 4 ! <<*OP4>> N=0 \ SUM,SS,S1,SS1,S2,SS2=0. FOR I=1 TO NR A=B(I,IA) \ C=B(I,IB) IF A=H9 OR C=H9 GOTO <> D=A-C \ SUM=SUM+D \ S1=S1+A \ S2=S2+C \ N=N+1 IF N>1 THEN Y=N \ Z=Y/(Y-1.) \ X=D-SUM/Y \ SS=SS+X*X*Z \ X=A-S1/Y \ & SS1=SS1+X*X*Z \ X=C-S2/Y \ SS2=SS2+X*X*Z <<*NXI>> NEXT I IF N<2 THEN PRINT "NOT ENOUGH PAIRS OF DATA OF DATA EXIST TO "+ & "COMPUTE A T-STATISTIC BETWEEN" \ PRINT "VARIABLES";IA;" AND";IB \ & GOTO <> Z=Y*(Y-1.) \ SES=SS/Z IF SES> SES=SQR(SES) \ T=(SUM/Y)/SES \ SS1=SQR(SS1/Z) \ SS2=SQR(SS2/Z) PRINT 'VARIABLE';IA;' MEAN';S1/Y;' STANDARD ERROR';SS1 \ & PRINT 'VARIABLE';IB;' MEAN';S2/Y;' STANDARD ERROR';SS2 \ & PRINT 'STANDARD ERROR OF DIFFERENCES';SES NDF=N-1 ! ! PRINT T AND DEGREES OF FREEDOM ! <<*PTD>> PRINT \ & PRINT USING "COMPUTED T = #######.#### ",T \ & PRINT USING "DEGREES OF FREEDOM = ##### ",NDF \ PRINT <<*MOR>> INPUT "DO YOU WISH TO COMPUTE MORE T VALUES (Y/N)";L$ L$=LEFT(L$,1) IF L$="Y" GOTO <> IF L$<>"N" THEN PRINT "PLEASE TYPE Y OR N" \ GOTO <> GOTO <> ! ERROR RECOVERY ROUTINE <<*ERR>> IF ERL=<> OR ERL=<> OR ERL=<> OR ERL=<> THEN & PRINT "YOU TYPED CHARACTERS THAT CANNOT BE INTERPRETED. SEPARATE "+ & "TWO OR MORE" \ PRINT "NUMBERS WITH A COMMA, BUT DO NOT END A "+ & "LINE WITH A COMMA" \ PRINT "PLEASE TRY AGAIN" \ PRINT IF ERL=<> THEN RESUME <> IF ERL=<> THEN RESUME <> IF ERL=<> THEN RESUME <> IF ERL=<> THEN RESUME <> PRINT \ PRINT "CALCULATIONS CANNOT BE COMPLETED BECAUSE COMPUTATION"+ & " CREATED NUMBERS" \ PRINT "OUTSIDE THE RANGE OF THIS COMPUTER" \ & PRINT \I=ERR \ PRINT ERT$(I) \ & PRINT "T0TEST ERROR";ERR;" AT LINE";ERL \ PRINT \ & PRINT "PLEASE RECORD THE ABOVE LINE AND CONTACT JOHN PENN IN BR "+ & "AT 3886" \ PRINT RESUME <> <<*END>> SUBEND