home *** CD-ROM | disk | FTP | other *** search
/ Play and Learn 2 / 19941.ZIP / 19941 / EDUCMATH / STATS / T-TEST.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1994-02-04  |  3.6 KB  |  73 lines

  1. 1  '                 STUDENT'S T-TEST (two-tailed)
  2. 2  '               Copyright Tracy L. Gustafson, M.D.
  3. 3  '              Round Rock, Texas. Version 3.2, 1985
  4. 4  ON ERROR GOTO 5000:CHAIN MERGE "EPIMRG",5
  5. 15  DIM D(1),CS(1),T(1),N$(1),X(1),X2(1),MD(1),SD(1)
  6. 22  DATA "STUDENT'S T-TEST (two-tailed)",24,31
  7. 30  LOCATE 6,7:PRINT "(Press RETURN if you wish to skip directly to T evaluation)"
  8. 35  LOCATE 5,1:GOSUB 4000
  9. 40  PRINT:PRINT:PRINT TAB(4);"What are the SAMPLE NUMBERS of the 2 variables you want to compare?":PRINT TAB(10);:AR=CSRLIN
  10. 45  AC=17:GOSUB 4200:NS1=NS:AC=47:GOSUB 4200:NS2=NS
  11. 50  PRINT TAB(5);"Means =";TAB(19);X(NS1)/T(NS1);TAB(49);X(NS2)/T(NS2)
  12. 55  PRINT "Variances =";TAB(19);SD(NS1)^2;TAB(49);SD(NS2)^2:PRINT
  13. 60  PRINT TAB(12);"Are these INDEPENDENT or PAIRED samples? (I or P)   ";
  14. 65  INPUT"", A$:IF A$="I" OR A$="i" THEN 90 ELSE IF A$<>"P" AND A$<>"p" THEN BEEP:GOTO 60
  15. 70  IF T(NS1)<>T(NS2) THEN BEEP:PRINT:PRINT " These 2 samples do not have the same number of elements---":PRINT TAB(37);"a paired T-TEST cannot be performed.":GOTO 220
  16. 75  XD=0:XD2=0:N=T(NS1):V=N-1
  17. 80  FOR Z=1 TO N:ED=VAL(D(NS1,Z))-VAL(D(NS2,Z)):XD=XD+ED:XD2=XD2+ED*ED:NEXT
  18. 85  VD=(XD2-XD*XD/N)/V:ST=ABS(XD/N)*SQR(N)/SQR(VD):GOTO 115
  19. 90  N1=T(NS1):N2=T(NS2):V=N1+N2-2:V1=N1-1:V2=N2-1
  20. 95  VR=((X2(NS1)-X(NS1)*X(NS1)/N1)+(X2(NS2)-X(NS2)*X(NS2)/N2))/V
  21. 100  VR=VR*(1/N1+1/N2):ST=ABS(X(NS1)/N1-X(NS2)/N2)/SQR(VR)
  22. 105  F=SD(NS1)^2/SD(NS2)^2:IF F<1 THEN F=1/F:SWAP V1,V2
  23. 110  GOSUB 240:IF P<0.05 THEN PRINT:PRINT "  The T-TEST may not be appropriate because these variances are so different.":PRINT TAB(22);"( F =";F;",  p ";:IF P<9.99E-07 THEN PRINT "< 10 (-6) )." ELSE PRINT "=";P;")."
  24. 115  PRINT:PRINT TAB(12);"T = ";ST;TAB(57);"df =";V:GOTO 135
  25. 120  CLS:PRINT TAB(19);"EVALUATING THE T DISTRIBUTION  (two-tailed)":PRINT TAB(19);STRING$(43,205)
  26. 125  LOCATE 5,30:PRINT "Enter T value: ":AR=5:AC=46:GOSUB 4800:ST=ABS(VAL(IP$))
  27. 130  LOCATE 7,25:PRINT "degrees of freedom:":AR=7:GOSUB 4800:V=VAL(IP$):PRINT:PRINT
  28. 135  R=ATN(ST/SQR(V)):RC=COS(R):R2=RC*RC:RS=SIN(R):X=1
  29. 140  IF V MOD 2=0 THEN 165
  30. 145  IF V=1 THEN Y=R:GOTO 160
  31. 150  Y=RC:FOR Z=3 TO (V-2) STEP 2:X=X*R2*(Z-1)/Z:Y=Y+X*RC:NEXT
  32. 155  Y=R+RS*Y
  33. 160  P=1-Y*0.63662:GOTO 175
  34. 165  Y=1:FOR Z=2 TO (V-2) STEP 2:X=X*R2*(Z-1)/Z:Y=Y+X:NEXT
  35. 170  P=1-Y*RS
  36. 175  PLAY "MS O3 L64 G O2 GE L9 E"
  37. 180  PRINT TAB(25);:COLOR CLR2,CLR1:PRINT "      p = ";:IF P<9.99E-07 THEN PRINT"< 10 (-6)"; ELSE PRINT P;
  38. 185  PRINT TAB(56):IF AF=1 THEN COLOR CLR1,CLR2:GOTO 230
  39. 190  PRINT TAB(11);"The MEANS of these 2 samples are ";:IF P>0.05 THEN PRINT "NOT ";
  40. 195  PRINT "significantly different.";TAB(80):COLOR CLR1,CLR2
  41. 200  PRINT:PRINT:PRINT "  The confidence limits on the DIFFERENCE between the means of these samples":PRINT "  can be calculated as: ":PRINT TAB(25);
  42. 205  DF=STR$(V):DF=RIGHT$(DF,LEN(DF)-1):IF A$="i" OR A$="I" THEN 215
  43. 210  YD=ABS(XD/N):PRINT YD; "+/- T(";DF;") * ";SQR(VD/N):GOTO 220
  44. 215  YD=ABS(X(NS1)/N1-X(NS2)/N2):PRINT YD;"+/- T(";DF;") * ";SQR(VR)
  45. 220  DQ="Do you want another T-TEST using ":LOCATE 25,15:PRINT DQ;:INPUT;"this datafile?   ",A$:IF A$="y" OR A$="Y" THEN CLS:GOTO 40
  46. 225  LOCATE 25,12:PRINT DQ;:INPUT;"a DIFFERENT datafile?  ",A$:IF A$="y" OR A$="Y" THEN 20 ELSE 235
  47. 230  LOCATE 25,20:INPUT;"Do you want to evaluate another T value?  ",A$:IF A$="y" OR A$="Y" THEN 120
  48. 235  GOTO 3000
  49. 240  X=1/(V1/V2*F+1):Y=1-X:PF=1:PT=1:VA=V1:VB=V2
  50. 245  IF V1 MOD 2<>0 THEN IF V2 MOD 2=0 THEN 265 ELSE 275
  51. 250  IF V2 MOD 2=0 THEN IF V2>=V1 THEN 265
  52. 255  FOR Z=1 TO (V1/2-1):PF=PF*(0.5/Z*Y*VB):PT=PT+PF:VB=VB+2:NEXT
  53. 260  P=X^(V2*0.5)*PT:GOTO 325
  54. 265  FOR Z=1 TO (V2/2-1):PF=PF*(0.5/Z*X*VA):PT=PT+PF:VA=VA+2:NEXT
  55. 270  P=1-Y^(V1*0.5)*PT:GOTO 325
  56. 275  XT=ATN(SQR(F*V1/V2)):X=SIN(XT):Y=COS(XT):PT=Y:PF=Y
  57. 280  IF V2=1 THEN 295
  58. 285  FOR Z=2 TO (V2-3) STEP 2:PF=PF*Y*Y*Z/(Z+1):PT=PT+PF:NEXT
  59. 290  PT=PT*X:XT=XT+PT
  60. 295  PT=1:PF=1:IF V1=1 THEN 320
  61. 300  FOR Z=2 TO (V2-1) STEP 2:PF=PF*Z/(Z-1):NEXT
  62. 305  PF=PF*Y^V2*X:PZ=1:PT=1:VB=V2+1
  63. 310  FOR Z=3 TO (V1-2) STEP 2:PZ=PZ*VB*X*X/Z:PT=PT+PZ:VB=VB+2:NEXT
  64. 315  XT=XT-PT*PF
  65. 320  P=1-XT*2/3.14159
  66. 325  RETURN
  67. 4010  AF=0:IF FILE$="" THEN AF=1:GOTO 120
  68. 4025  ERASE D,CS,T,N$,X,X2,MD,SD
  69. 4030  DIM D(A,C),CS(A,C),T(A),N$(A),X(A),X2(A),MD(A),SD(A)
  70. 5000  BEEP:IF ERR<>53 AND ERR<>71 THEN 5010 ELSE LOCATE 2,10:PRINT "Please place EPISTAT in drive A: (or other default).":PRINT TAB(25);"Press any key to continue:"
  71. 5005  A$=INKEY$:IF A$="" THEN 5005 ELSE RESUME
  72. 5010  ON ERROR GOTO 0:END
  73.