1 ! PROGRAM TEST, VERSION 1A (31-AUG-73) ! 2 ! PROGRAM TEST COMPUTES THE VALUE OF STUDENT'S T FOR FOUR OPTIONS. ! IT IS ONE OF THE SEVERAL PROGRAMS AND FILES WHICH COMPOSE COSAP, ! LAWRENCE UNIVERSITY'S CONVERSATIONALLY ORIENTED STATISTICAL 3 ! ANALYSIS PACKAGE. COSAP IS DISTRIBUTED FOR EDUCATIONAL USE, ON ! THE CONDITION THAT IT NOT BE SOLD, RENTED OR LEASED FOR PROFIT. ! 4 ! IF YOU DESIRE FURTHER INFORMATION ABOUT COSAP, PLEASE CONTACT THE ! LAWRENCE UNIVERSITY COMPUTER CENTER, APPLETON, WISCONSIN, 54911. ! 10 DIM N%(30) ! FUNCTION TO CREATE FILE EXT. BASED ON JOB# 25 DEF FNZ$ : IF N%(0)=30% THEN 40 ELSE CHANGE SYS(CHR$(6)+CHR$(9)+CHR$(0)) TO N% : Z8$=".J"+RIGHT(NUM$(N%(1)/2%),2%) 40 FNZ$=Z8$! EXTENSION IS".J"+JOB # 55 FNEND 70 !****TEST 85 OPEN "DAT1"+FNZ$ AS FILE 1 90 OPEN L1$(1%) FOR INPUT AS FILE 5% 100 DIM#1,X(200,50),H$(30)=2,C(50,50),M4(0),M5(0),M9(0),N(0),J9(0), I4(0),I7(0),N6(0),X2(50),L1$(8)=32% 105 DIM #5%, N$(50%)=8%,M1$(50%)=64%,O%(50%),P%(50%),D$(50%)=8%, T(50%),D(10000%) 115 DEF FNR(Q):INPUT Z$:Q=INSTR(1,Z$,"SOS"):IF Q>0 THEN 145 130 Q=VAL(Z$):GOTO 160 145 Q=808 160 FNR=Q:FNEND 175 ! 180 PRINT:PRINT"THIS PROGRAM COMPUTES STUDENT'S T FOR FOUR OPTIONS.": INPUT "DO YOU WISH TO SEE THE LIST OF OPTIONS";N$ 181 IF ASCII(N$)=78% THEN 385 190 !THIS SUBROUTINE COMPUTES T VALUES ON THE MEANS OF SAMPLE 205 !VARIABLES A AND B 220 K=0 235 !ASK WHAT OPTION IS TO BE USED 250 K=K+1 265 IF K>1 THEN 385 280 PRINT 285 PRINT "THIS PROGRAM COMPUTES THE VALUE OF THE STUDENT'S" 286 PRINT "T STATISTIC BASED ON A SAMPLE (OR SAMPLES), VARIOUS" 287 PRINT "HYPOTHESES CONCERNING THE MEAN(S) AND ASSUMPTIONS" 288 PRINT "CONCERNING THE VARIANCE(S) OF THE NORMALLY DISTRIBUTED" 289 PRINT "POPULATION(S) FROM WHICH THE SAMPLE(S) HAS (HAVE) BEEN" 290 PRINT "DRAWN." 291 PRINT 292 PRINT "OPTION 1" 293 PRINT "ONE SAMPLE HAS BEEN DRAWN FROM A SINGLE POPULATION WHOSE" 294 PRINT "MEAN IS GIVEN BY THE NULL HYPOTHESIS AND WHOSE VARIANCE" 295 PRINT "IS UNKNOWN." 296 PRINT 297 PRINT "OPTIONS 2, 3, AND 4 RELATE TO THE FOLLOWING SITUATION:" 298 PRINT "ONE SAMPLE HAS BEEN DRAWN FROM EACH OF TWO POPULATIONS WHOSE" 299 PRINT "MEANS ARE GIVEN AS BEING EQUAL BY THE NULL HYPOTHESIS AND" 300 PRINT "WHOSE VARIANCES ARE UNKNOWN." : PRINT 301 PRINT "OPTION 2" 302 PRINT "ASSUMES THE VARIANCES OF THE TWO POPULATIONS ARE EQUAL." 303 PRINT 304 PRINT "OPTION 3" 305 PRINT "ASSUMES THE VARIANCES OF THE TWO POPULATIONS ARE UNEQUAL." 306 PRINT 307 PRINT "OPTION 4" 308 PRINT"ASSUMES THAT THE TWO POPULATIONS ARE CORRELATED (PAIRED " "SAMPLES CASE)." 309 PRINT : PRINT "FOR OPTION 4 THE TWO SAMPLES MUST BE THE SAME SIZE." 385 PRINT 400 PRINT "WHICH OPTION"; 415 Q1=FNR(Q) 430 IF Q1<> N6(0) THEN 520 445 PRINT 460 PRINT"SELECT THE HYPOTHESES YOU WISH TO TEST AND SPECIFY THE "; 475 PRINT"OPTION CODE." 490 GO TO 280 505 !CHECK TO SEE IF THE SPECIFIED OPTION CODE IS PRESENT 520 IF 4>=Q1 THEN 580 535 PRINT 550 PRINT"THAT OPTION IS NOT AVAILABLE. TRY AGAIN." 565 GO TO 385 580 IF Q1>1 THEN 895 595 IF Q1<1 THEN 550 610 !OPTION 1 625 PRINT : Q%=-1% 640 PRINT"WHAT IS THE NAME OF THE VARIABLE *"; 655 A9=FNC%("") 730 PRINT 745 PRINT"SPECIFY THE VALUE YOU WISH TO COMPARE AGAINST THE MEAN OF "; 760 PRINT N$(A9); 775 Q2=FNR(Q) 790 IF Q2<>N6(0) THEN 840 805 PRINT 820 PRINT"THIS VALUE MAY BE A MEAN COMPUTED FROM ANOTHER SAMPLE." 835 GO TO 730 840 Q1%=A9 : GOSUB 20000 850 A6=C(A9,A9)/(N(0)-1):S1=SQR(A6):S6=((X2(A9)-Q2)/S1)*SQR(N(0)) 865 D9=N(0)-1:GOTO 1360 880 !OPTION 2-4 895 PRINT : Q%=0% 910 PRINT"WHAT ARE THE NAMES OF THE TWO VARIABLES *" 925 A9=FNC%("FIRST VARIABLE") : B9=FNC%("SECOND VARIABLE") 1060 !COMPUTE VARIANCES OF A9 AND B9 1065 IF Q1=4 THEN 1255 1070 A1=0 : FOR I%=1% TO O%(A9) : A1=X(I%,A9)+A1 : NEXT I% : A1=A1/O%(A9) : B1=0 : FOR I%=1% TO O%(B9) : B1=B1+X(I%,B9) : NEXT I% : B1=B1/O%(B9) 1071 X2(A9)=A1 : X2(B9)=B1 1075 A6=0 : FOR I%=1% TO O%(A9) : A6=A6+(X(I%,A9)-A1)^2 : NEXT I% : A6=A6/(O%(A9)-1) : B6=0 : FOR I%=1% TO O%(B9) : B6=B6+(X(I%,B9)-B1)^2 : NEXT I% : B6=B6/(O%(B9)-1) 1090 IF Q1=3 THEN 1195 1120 N1=O%(A9)-1 : N2=O%(B9)-1 1135 S=((N1*A6)+(N2*B6))/(N1+N2) : S=SQR(S) 1150 S7=1/O%(A9) : S7=S7+(1/O%(B9)) : S6=(A1-B1)/(S*SQR(S7)) 1165 D9=N1+N2 : GOTO 1360 1180 !OPTION 3 1195 D=(A6/O%(A9))+(B6/O%(B9)) 1210 S6=(A1-B1)/SQR(D) 1225 D2=(A6/O%(A9)) : D3=B6/O%(B9) 1240 D9=((D2+D3)^2/((D2*D2/(O%(A9)+1))+(D3*D3/(O%(B9)+1))))-2 1241 GOTO 1360 1255 ! OPTION 4 1256 Q1%=A9 : GOSUB 20000 : Q1%=B9 : GOSUB 20000 1260 A6=C(A9,A9)/(N(0)-1) : B6=C(B9,B9)/(N(0)-1) 1270 D=X2(B9)-X2(A9):D2=0:FOR I=1 TO N(0) 1285 D2=D2+(X(I,B9)-X(I,A9)-D)^2:NEXT I 1300 D2=SQR(D2/(N(0)-1)) 1315 S6=(D/D2)*SQR(N(0)) 1330 D9=N(0)-1 1345 !PRINT THE RESULTS 1360 PRINT : PRINT "VARIABLE ";"MEAN";TAB(25%);"VARIANCE" 1365 PRINT N$(A9);SPACE$(14%-LEN(N$(A9)));X2(A9);TAB(25%);A6 1370 IF Q% THEN 1385 ELSE PRINT N$(B9);SPACE$(14%-LEN(N$(B9)));X2(B9);TAB(25%);B6 1385 PRINT 1390 PRINT"STUDENT'S T.......... "S6 1405 PRINT"DEGREES OF FREEDOM... "D9 1420 !ASK WHETHER MORE ANALYSIS IS TO BE PERFORMED 1435 PRINT:INPUT"DO YOU WISH TO COMPUTE MORE T-VALUES IN THIS DATABANK"; N$ 1450 IF N$="YES" THEN 385 ELSE IF N$<>"SOS" THEN 1525 1465 PRINT 1480 PRINT"ANSWER YES, IF YOU WISH TO COMPUTE MORE T VALUES UNDER" 1495 PRINT"DIFFERENT ASSUMPTIONS AND WITH DIFFERENT VARIABLES." 1510 GO TO 1435 1525 K$=SYS(CHR$(7)):N$=LEFT(K$,8):S0=VAL(RIGHT(K$,9)): CLOSE 1%,5% : CHAIN N$ S0 20000 DIM T1(50),T5(50),D1(50) 20005 IF Q%=-1% THEN 20020 20010 IF O%(A9)=O%(B9) THEN 20020 ELSE PRINT : PRINT "NUMBER OF" " OBSERVATIONS MUST BE THE SAME." : GOTO 1435 20020 N(0)=O%(A9) : T1(Q1%)=X(1%,Q1%) : T5(Q1%)=0 : C(Q1%,Q1%)=0 20030 FOR I%=2% TO O%(A9) : T1(Q1%)=T1(Q1%)+X(I%,Q1%) : D1(Q1%)= X(I%,Q1%)-X(1%,Q1%) : T5(Q1%)=T5(Q1%)+D1(Q1%) : C(Q1%,Q1%)=C(Q1%,Q1%)+D1(Q1%)*D1(Q1%) : NEXT I% 20040 X2(Q1%)=T1(Q1%)/N(0) : D1(Q1%)=T5(Q1%)/N(0) : C(Q1%,Q1%)= C(Q1%,Q1%)-D1(Q1%)*T5(Q1%) : IF C(Q1%,Q1%)<=0 THEN C(Q1%,Q1%)=0 20050 RETURN 30000 DEF FNC%(X$) ! FUNCTION TO TRANSLATE VARIABLE NAMES 30010 PRINT X$; UNLESS X$="" : INPUT V$ : IF V$="" THEN PRINT : PRINT "VARIABLE NAME NEEDED "; : GOTO 30010 30020 GOTO 30040 IF V$=N$(I%) FOR I%=1% TO O%(0%) 30025 IF LEFT(V$,3%)="SOS" THEN FNC%=808 : GOTO 30050 30030 PRINT "*NO SUCH VARIABLE* TRY AGAIN." : GOTO 30010 30040 FNC%=I% 30050 FNEND 32767 END