10 X$=SYS(CHR$(7)):R$=LEFT(X$,7):L$=RIGHT(X$,8) 20 REM 30 REM BEHRENS FISHER DISTRIBUTION 40 REM 50 REM********************************************************** 55 X=0 60 DIM #1,A1(111),A2(111),A3(111) 70 OPEN R$ AS FILE 1 110A1(0)=15 120B1=A2(0):B2=A2(1):B3=A2(2):B4=A2(3):B5=A2(4) 130 S6=0 140 DIM H(200),S(200) 150 V8=0 160 GOSUB 6054 170 IF B1=0 THEN 190 180 V8=1 190 PRINT L$ 200 PRINT " BEHRENS-FISHER DISTRIBUTION" 210 PRINT 220 PRINT "THIS MODULE ALLOWS YOU TO EXAMINE THE CHARACTERISTICS OF A" 230 PRINT "BEHRENS-FISHER DISTRIBUTION. TYPE THE NUMBER OF THE OPTION" 240 PRINT "YOU WANT." 250 PRINT " 1. PERCENTILES" 260 PRINT " 2. HIGHEST DENSITY REGIONS" 270 PRINT " 3. PROBABILITY LESS THAN SOME VALUE" 280 PRINT " 4. PROBABILITY BETWEEN TWO VALUES" 290 PRINT " 5. EXIT" 300 GOSUB 9000 310 IF O1=5 THEN 400 320 IF O1=1 THEN 410 330 IF O1=2 THEN 410 340 IF O1=3 THEN 410 350 IF O1=4 THEN 410 370 PRINT "REENTER. INPUT MUST BE NUMBER OF OPTION." 390 GOTO 300 400 CLOSE 1: CHAIN "RSTRT" 410 I1=O1 420 IF S6=1 THEN 1320 430 PRINT 440 IF V8=1 THEN 540 450 PRINT "INPUT THE PARAMETERS OF THE BEHRENS-FISHER DISTRIBUTION." 460 PRINT 470 PRINT "PSI (IN DEGREES)"; 480 GOSUB 9000 490 IF O1 >= 0 THEN 520 500 PRINT "REENTER. PSI MUST BE AT LEAST 0 AND NOT MORE THAN 90." 510 GOTO 470 520 IF O1>90 THEN 500 530 B3=O1 540 IF B3 <= 45 THEN 570 550 Z7=90-B3 560 GOTO 580 570 Z7=B3 580 IF V8=1 THEN 780 590 PRINT 600 PRINT "NU1 (DEGREES OF FREEDOM OF 1ST T-DISTRIBUTION)"; 610 GOSUB 9000 620 IF O1 >= 6 THEN 670 630 PRINT 650A$="REENTER. DEGREES OF FREEDOM MUST BE AT LEAST 6." 651PRINT A$; 660 GOTO 610 670 N0=O1 680 B1=O1 690 PRINT 700 PRINT "INPUT NU2 (DEGREES OF FREEDOM OF THE 2ND DISTRIBUTION)"; 710 GOSUB 9000 720 IF O1 >= 6 THEN 750 730 PRINT "REENTER. MUST BE AT LEAST 6." 740 GOTO 690 750 B2=O1 760 N1=O1 770 IF B3 <= 45 THEN 800 780 N0=B2 790 N1=B1 800 IF N0>=80THEN 860 805G9=(N0+1)/2 810 GOSUB 5850 820 T0=EXP(G0) 830 G9=N0/2 840 GOSUB 5850 850 T1=EXP(G0) 860 K5=0 870 FOR X0=-5.7 TO -4.65 STEP .15 880 GOSUB 1030 890 NEXT X0 900 FOR X0=-4.5 TO -3 STEP .1 910 GOSUB 1030 920 NEXT X0 930 FOR X0=-2.9 TO 2.9 STEP .05 940 GOSUB 1030 950 NEXT X0 960 FOR X0=3 TO 4.5 STEP .1 970 GOSUB 1030 980 NEXT X0 990 FOR X0=4.65 TO 5.7 STEP .15 1000 GOSUB 1030 1010 NEXT X0 1020 GOTO 1110 1030 IF N0<80 THEN 1060 1040 P0=EXP(-X0*X0/2)*.398942 1050 GOTO 1070 1060 P0=(T0/(SQR(N0*3.14159)*T1))/(1+X0*X0/N0)^((N0+1)/2) 1070 K5=K5+1 1080 S(K5)=P0 1090 H(K5)=X0 1100 RETURN 1110 Z7=Z7*1.74533E-02 1120 IF V8=0 THEN 1150 1130 E0=B4 1140 GOTO 1240 1150 PRINT 1160 PRINT "EPSILON (SCALE PARAMETER)"; 1170 GOSUB 9000 1180 IF O1>0 THEN 1220 1190 PRINT 1200 PRINT "REENTER. EPSILON MUST BE GREATER THAN 0." 1210 GOTO1150 1220 E0=O1 1230 B4=E0 1240 IF V8=0 THEN 1270 1250 M0=B5 1260 GOTO 1320 1270 PRINT 1280 PRINT "ZETA (MEAN OF 1ST MINUS MEAN OF 2ND)"; 1290 GOSUB 9000 1300 M0=O1 1310 B5=M0 1320 PRINT L$ 1330 ONI1 GOTO 1340,1630,1830,2010 1340 PRINT " OPTION 1: PERCENTILES" 1350 PRINT 1360 PRINT "TO EXIT ROUTINE TYPE '0' WHEN ASKED FOR INPUT." 1370 PRINT "INPUT PERCENTILE AS NUMBER FROM 2.5 THROUGH 97.5." 1380 GOSUB 2090 1390 GOSUB 2290 1400 GOSUB 2090 1410 PRINT "INPUT PERCENTILE"; 1420 GOSUB 9000 1430 IF O1=0 THEN 2120 1440 IF O1<2.5 THEN 1600 1450 IF O1>97.5 THEN 1600 1460 IF O1=50 THEN 1500 1470 IF O1>50 THEN 1530 1480 P9=1-O1/100 1490 GOTO 1540 1500 B9=M0 1510 P9=O1/100 1520 GOTO 1570 1530 P9=O1/100 1540 GOSUB 2550 1550 IF O1>50 THEN 1570 1555 P9=O1/100 1560 B9=2*M0-B9 1570REM 1580A$=" ##.## PERCENTILE = #######.##" 1581 PRINT USING A$ ,P9*100,B9 1590 GOTO 1410 1600 PRINT"REENTER. PERCENTILE MUST BE IN THE RANGE OF 2.5 THROUGH 97.5" 1610REM 1620 GOTO 1410 1630 PRINT " OPTION 2: HIGHEST DENSITY REGIONS" 1640 PRINT 1650 PRINT "TO EXIT ROUTINE TYPE '0' WHEN ASKED FOR INPUT." 1660 PRINT "YOU CAN GET ANY P% HDR FROM 20 TO 98." 1670 GOSUB 2090 1680 GOSUB 2290 1690 GOSUB 2090 1700 PRINT "INPUT P%"; 1710 GOSUB 9000 1720 IF O1=0 THEN 2120 1730 IF O1<20 THEN 1810 1740 IF O1>98 THEN 1810 1750 P9=O1/200 1760 P9=.5+P9 1770 GOSUB 2550 1790A$=" ##.#% HDR =(#######.##,#######.##)" 1791 PRINT USING A$ ,O1,2*M0-B9,B9 1800 GOTO 1700 1810 PRINT "REENTER. MUST BE AT LEAST 20 AND NOT MORE THAN 98." 1820 GOTO 1700 1830 PRINT " OPTION 3: PROBABILITY LESS THAN SOME VALUE" 1840 H9=1 1850 PRINT "TO EXIT ROUTINE TYPE '-7777' WHEN ASKED FOR INPUT." 1860 GOSUB 2090 1870 GOSUB 2290 1880 GOSUB 2090 1890 PRINT "INPUT X"; 1900 GOSUB 9000 1910 IF O1=-7777 THEN 2120 1920 E2=(O1-M0)/E0 1930 GOSUB 2710 1950A$=" PROB(BF <#######.##)=#.##." 1951 PRINT USING A$ ,O1,Z9 1970A$=" PROB(BF >#######.##)=#.##." 1971 PRINT USING A$ ,O1,1-Z9 1980 GOTO 1890 1990 GOTO 340 2000 GOTO 1890 2010 PRINT " OPTION 4: PROBABILITY BETWEEN TWO VALUES" 2020 H9=1 2030 PRINT 2040 PRINT "TO EXIT ROUTINE TYPE '-7777'S WHEN ASKED FOR INPUT." 2050 GOSUB 2090 2060 GOSUB 2290 2070 GOSUB 2090 2080 GOTO 2350 2090REM 2100A$="-------------------------------------------------------" 2101PRINT A$ 2110 RETURN 2120 PRINT L$ 2130 S6=0 2140 PRINT "TYPE THE NUMBER OF THE OPTION YOU WANT." 2150 PRINT " 1. FURTHER EVALUATE THIS DISTRIBUTION" 2160 PRINT " 2. EVALUATE A DIFFERENT BEHRENS-FISHER DISTRIBUTION" 2170 PRINT " 3. EXIT MODULE" 2180 GOSUB 9000 2190 IF O1=1 THEN 2250 2200 IF O1=2 THEN 2260 2210 IF O1=3 THEN 2240 2220 PRINT "REENTER. INPUT MUST BE 1,2 OR 3." 2230 GOTO 2180 2240 CLOSE 1: CHAIN "RSTRT" 2250 S6=1 2260 PRINT 2270 PRINT "TYPE THE NUMBER OF THE OPTION YOU WANT." 2280 GOTO 250 2290 PRINT " BEHRENS-FISHER DISTRIBUTION" 2310A$="NU1=#####.## NU2=#####.## PSI=###.## DEGREES." 2311 PRINT USING A$ ,B1,B2,B3 2330A$="EPSILON (SCALE) =#######.## THETA(DIFFERENCE) = ########.##" 2331 PRINT USING A$ ,B4,B5 2340 RETURN 2350 PRINT "INPUT SMALLER VALUE"; 2360 GOSUB 9000 2370 V4=O1 2380 IF O1=-7777 THEN 2390 2390 PRINT "INPUT LARGER VALUE"; 2400 GOSUB 9000 2410 V5=O1 2420 IF O1=-7777 THEN 2120 2430 IF V4= 0 THEN 2810 2800 P=1-P 2810 Z9=Z9+P*S(I)*(H(I)-H(I-1)) 2820 NEXT I 2830 F9=Z9 2840 IF H9=0 THEN 2860 2850 RETURN 2860 IF (ABS(F9-P9)<.001) THEN 2970 2880 IF F9>P9 THEN 2930 2890 E1=E2 2900 H1=F9 2910 E2=E1+(P9-H1)/(H3-H1)*(E3-E1) 2920 GOTO 2700 2930 E3=E2 2940 H3=F9 2950 E2=E1+(P9-H1)/(H3-H1)*(E3-E1) 2960 GOTO 2700 2970 REM 2980 B9=M0+E2*E0 2990 RETURN 3000 REM--*****ROUTINE TO CALC T PERCENTILE***** 3010 G=N 3020 E5=0 3030 E6=2.5 3040 E7=5 3050 J2=E6 3060 GOSUB 6000 3070 IF ABS(P-P9) <= .0001 THEN 3150 3080 IF P>P9 THEN 3120 3090 E5=E6 3100 E6=(E5+E7)/2 3110 GOTO 3050 3120 E7=E6 3130 E6=(E5+E7)/2 3140 GOTO 3050 3150 RETURN 3160 REM--*****END OF ROUTINE***** 5850 REM **************************************************** 5852 REM LOG GAMMA ROUTINE 5853 REM INPUT G9 5854 REM OUTPUT G0 5860 G5=G9 5863 IF G9 <= 1.E+30 THEN 5872 5866 G0=1.E+38 5869 RETURN 5872 IF G9>1.E-09 THEN 5881 5875 G0=0 5878 RETURN 5881 IF G9<1.E+10 THEN 5890 5884 G0=G9*(LOG(G9)-1) 5887 RETURN 5890 G6=1 5893 IF 1880 THEN 6044 6043 P=P+W(I1)*EXP(-D9) 6044 NEXT I1 6046 P=P*F0 6048 P=P*D0 6050 P=P+.5 6052 RETURN 6054 FOR I1=1 TO 16 6056 READ W(I1),O(I1) 6058 NEXT I1 6060 DATA 2.71525E-02,-.989401 6062 DATA 6.22535E-02,-.944575,9.51585E-02,-.865631 6064 DATA .124629,-.755404,.149596,-.617876 6066 DATA .169156,-.458017,.182603,-.281604,.189451,-9.50125E-02 6068 DATA .189451,9.50125E-02,.182603,.281604,.169156,.458017 6070 DATA .149596,.617876,.124629,.755404 6072 DATA 9.51585E-02,.865631,6.22535E-02,.944575,2.71525E-02 6074 DATA .989401 6076 RETURN 6078 G9=(N+1)/2 6080 GOSUB 5850 6082 F0=G0 6084 G9=N/2 6086 GOSUB 5850 6088 F0=EXP(F0-G0)/SQR(3.14159*N) 6090 RETURN 6092 REM FOLLOWING FOR NU=1 6094 P=.5+1/3.14159*ATN(Y3) 6096 RETURN 6097 REM END OF STUDENT'S T CDF ROUTINE 6098 REM************************************************************* 8000 REM ********************************************************** 8001 REM ROUTINE CALCULATES THE CDF FOR NORMAL DISTRIBUTION 8002 REM INPUT Y3 8003 REM OUTPUT P 8004 REM 8005 Y4=ABS(Y3) 8010 X1=X 8015 X=Y3 8020 T=1/(1+.231642*Y4) 8021IF X*X/2<80 THEN 8025 8022 D=0 8023 GOTO 8030 8025 D=.398942*EXP(-X*X/2) 8030 C1=1.33027 8035 C2=1.82126 8040 C3=1.78148 8045 C4=.356564 8050 C5=.319382 8055 P=1-D*T*((((C1*T-C2)*T+C3)*T-C4)*T+C5) 8060 IF X >= 0 THEN 8070 8065 P=1-P 8070 X=X1 8075 RETURN 8076 REM 8077 REM END OF NORMAL CDF ROUTINE 8078 REM ********************************************************** 9000 REM--SUBROUTINE THAT DETERMINES IF RESTART HAS BEEN REQUESTED. 9005 INPUT O1 9015 IF O1=-9999 THEN 9025 9020 RETURN 9025 CLOSE 1: CHAIN "RSTRT" 9035 REM*************END ROUTINE 9999 END