10X$=SYS(CHR$(7)):R$=LEFT(X$,7):L$=RIGHT(X$,8) 20 REM *************************************************************** 25 REM CMODC CMODC CMODC CMODC CMODC CMODC 30 REM *************************************************************** 40 REM 50 REM STUDENT'S T DISTRIBUTION 60 REM 70 REM *************************************************************** 80 REM *************************************************************** 90 X=0 95 V4=0 100 F2=0 110 GOSUB 6054 120 DIM #1,A1(111),A2(111),A3(111) 130 OPEN R$ AS FILE 1 160 I3=A1(2) 170 REM 180 REM I3=8 IF YOU ARE COMING FROM THE EXPECTED UTILITY 190 REM 200 REM 210 IF I3=8 THEN 3810 220A1(0)=12 230G=A3(0):M0=A3(1):L1=A3(3) 240 V7=0 250 V8=0 260 L9=0 270 REM 280 REM G=0 MEANS THAT PARAMETERS WERE NOT PASSED 290 REM 300 IF G=0 THEN 320 310 L9=1 320 V8=0 330 PRINT L$ 340 PRINT " EVALUATION OF A STUDENT'S T DISTRIBUTION" 350 PRINT 360 PRINT "THIS MODULE ALLOWS YOU TO EXAMINE THE CHARACTERISTICS OF A" 370 PRINT "STUDENT'S T DISTRIBUTION." 380 GOTO 570 390 PRINT 400 PRINT "TYPE THE NUMBER OF THE OPTION YOU WANT." 410 PRINT " 1. PERCENTILES" 420 PRINT " 2. HIGHEST DENSITY REGIONS" 430 PRINT " 3. PROBABILITY T IS LESS THAN SOME VALUE" 440 PRINT " 4. PROBABILITY T IS BETWEEN TWO VALUES" 450 PRINT " 5. PERCENTILES FOR TRUNCATED T DISTRIBUTION" 460 PRINT " 6. EXIT MODULE" 470 PRINT 480 GOSUB 9000 490 I=O1 500 IF I=6 THEN 2550 510 GOTO 870 520 REM 530 REM V8=1 IF YOU DO NOT WANT TO CHANGE DISTRIBUTIONS 540 REM L9=0 IF THE PARAMETERS WERE NOT PASSED 550 REM 560 IF V8=1 THEN 390 570 IF L9=0 THEN 640 580 GOTO 390 590 REM ********************************************************* 600REM 610 REM INPUT PARAMETERS 620 REM 630 REM 640 PRINT 650 PRINT "INPUT THE DEGREES OF FREEDOM OF THE DISTRIBUTION."; 660 GOSUB 9000 670 G=O1 680 IF G<3 THEN 800 690 PRINT 700 PRINT "INPUT MEAN."; 710 GOSUB 9000 720 M0=O1 730 PRINT 740 PRINT "INPUT SCALE PARAMETER."; 750 GOSUB 9000 760 L1=O1 770 IF L1>0 THEN 390 780 PRINT "REENTER. SCALE PARAMETER MUST BE POSITIVE." 790 GOTO 740 800PRINT"REENTER. MINIMUM DEGREES OF FREEDOM IS 3." 810 GOTO 640 820 REM 830 REM 840 REM END OF THE INPUT ROUTINE 850 REM 860 REM************************************************************ 870 REM 880 S0=SQR(L1/(G-2)) 890 IF I=3 THEN 1780 900 IF I=4 THEN 2120 910 IF I=2 THEN 1490 920 IF I=5 THEN 960 930 IF I=1 THEN 3080 940 PRINT "REENTER. YOU DID NOT SPECIFY 0 OR ACCEPTABLE VALUE." 950 GOTO 480 960 PRINT L$ 970 F2=0 980 L2=-9.E+23 990 L3=0 1000 L5=0 1010 U3=0 1020 P=0 1030 PRINT "IF THE DISTRIBUTION IS LEFT-TRUNCATED TYPE '1', ELSE '0'."; 1040 GOSUB 9000 1050 IF O1=0 THEN 1270 1060 L3=1 1070 PRINT 1080 PRINT "INPUT WHERE IT IS LEFT-TRUNCATED."; 1090 GOSUB 9000 1100 L2=O1 1110 Y0=ABS(M0-L2) 1120 X3=L2 1130 GOSUB 1150 1140 GOTO 1250 1150 Y3=Y0/S0/SQR((G-2)/G) 1160 J1=0 1170 J2=Y3 1180 GOSUB 6000 1190 P=P-.5 1200 IF X3 0 THEN 1340 1320 F2=1-P 1330 GOTO 3080 1340 U3=1 1350 PRINT "INPUT WHERE IT IS RIGHT-TRUNCATED."; 1360 GOSUB 9000 1370 IF O1>L2 THEN 1410 1380 PRINT L$ 1390 PRINT "REENTER. RIGHT-TRUNCATED POINT MUST BE LARGER THAN LEFT ONE." 1400 GOTO 970 1410 U2=O1 1420 Y0=ABS(M0-U2) 1430 X3=U2 1440 GOSUB 1150 1450 F2=P-F2 1460 GOTO 3080 1470 PRINT 1480 REM ********************************************************** 1490 PRINT L$ 1500 PRINT " OPTION 2: HIGHEST DENSITY REGIONS" 1510 PRINT 1520 PRINT "TO EXIT ROUTINE TYPE '0' WHEN ASKED FOR INPUT." 1530 PRINT "INPUT P% AS NUMBER FROM 5 THROUGH 95." 1540A$="---------------------------------------------------" 1541PRINT A$ 1560 GOSUB 2680 1570 PRINT "INPUT P%"; 1580 GOSUB 9000 1590 IF O1=0 THEN 2870 1600 J5=O1 1610 J5=J5/100 1620 IF J5>.95 THEN 1710 1630 IF J5<.05 THEN 1710 1640 GOSUB 7500 1650 Q=SQR((G-2)/G)*S0*J2 1660 J1=M0-Q 1670 J2=M0+Q 1680A$=" ##.##% HDR = ########.## TO #######.##" 1681 PRINT USING A$ ,J5*100,J1,J2 1700 GOTO 1570 1710 PRINT 1720 PRINT "P% MUST BE AT LEAST 5% AND NOT GREATER THAN 95%. REENTER." 1730 PRINT 1740 GOTO 1570 1750 REM 1760 REM END OF HDR ROUTINE 1770 REM ********************************************************************** 1780 PRINT L$ 1790 PRINT " OPTION 3: PROBABILITY T IS LESS THAN SOME VALUE" 1800 PRINT 1810 PRINT "TO EXIT ROUTINE TYPE '7777' WHEN ASKED FOR INPUT." 1820A$="---------------------------------------------------" 1821PRINT A$ 1830 GOSUB 2680 1840 PRINT "INPUT VALUE"; 1850 GOSUB 9000 1860 IF O1=7777 THEN 2870 1870 X3=O1 1880 Y0=ABS(M0-X3) 1890 Y3=Y0/S0/SQR((G-2)/G) 1900 J1=0 1910 J2=Y3 1920 GOSUB 6000 1930 P=P-.5 1940 IF X3 8 THEN 2000 1990 RETURN 2000 IF V7=1 THEN 3500 2020A$=" PROB( T < ########.## ) = #.##" 2021 PRINT USING A$ ,X3,P 2040A$=" PROB( T > ########.## ) = #.##" 2041 PRINT USING A$ ,X3,1-P 2050 GOTO 1840 2060 REM 2070 REM 2080 REM END OF LESS THAN ROUTINE 2090 REM 2100 REM ********************************************************** 2110 REM 2120 PRINT L$ 2130 PRINT " OPTION 4: PROBABILITY T IS BETWEEN TWO VALUES" 2140 PRINT 2150 PRINT "TO EXIT ROUTINE TYPE '0' WHEN ASKED FOR INPUT." 2160A$="---------------------------------------------------" 2161PRINT A$ 2170 GOSUB 2680 2180 PRINT "INPUT SMALLER VALUE."; 2190 GOSUB 9000 2200 X3=O1 2210 PRINT "INPUT LARGER VALUE."; 2220 GOSUB 9000 2230 IF X3 <> 0 THEN 2250 2240 IF O1=0 THEN 2870 2250 X4=O1 2260 IF X3 >= X4 THEN 2640 2270 Y0=ABS(M0-X3) 2280 Y3=Y0/S0/SQR((G-2)/G) 2290 B=.5*G 2300 J1=0 2310 J2=Y3 2320 GOSUB 6000 2330 P=P-.5 2340 IF X3 3 THEN 3020 2980 GOTO 2630 2990 V8=1 3000 PRINT L$ 3010 GOTO 560 3020 PRINT "REENTER. INPUT MUST BE 1,2 OR 3." 3030 PRINT 3040 GOTO 2940 3050 REM 3060 REM ****************************************************** 3070 REM 3080 PRINT L$ 3090 IF F2=0 THEN 3120 3100 PRINT " OPTION 5: PERCENTILES OF TRUNCATED DISTRIBUTION" 3110 GOTO 3130 3120 PRINT " OPTION 1: PERCENTILES" 3130 PRINT 3140 PRINT "TO EXIT ROUTINE TYPE '0' WHEN ASKED FOR INPUT." 3150 PRINT "INPUT PERCENTILE AS NUMBER FROM .5 THROUGH 99.5." 3160A$="--------------------------------------------------------" 3161PRINT A$ 3170 GOSUB 2680 3180 V7=1 3190 PRINT "INPUT PERCENTILE"; 3200 GOSUB 9000 3210 IF O1=0 THEN 2870 3220 IF O1<.5 THEN 3230 3225 IF O1 <= 99.5 THEN 3270 3230 PRINT 3240 PRINT "PERCENTILES MUST BE AT LEAST .5 AND NOT MORE THAN 99.5." 3250 PRINT 3260 GOTO 3190 3270 P1=O1 3280 IF F2 <> 0 THEN 3340 3290 IF P1>50 THEN 3460 3300 IF P1<50 THEN 3430 3310 X3=M0 3320 IF F2 <> 0 THEN 3430 3330 GOTO 3600 3340 IF L3=0 THEN 3370 3350 E1=L2 3360 GOTO 3380 3370 E1=M0-7*S0 3380 IF U3=0 THEN 3410 3390 E2=U2 3400 GOTO 3480 3410 E2=M0+7*S0 3420 GOTO 3480 3430 E2=M0 3440 E1=M0-7*S0 3450 GOTO 3480 3460 E1=M0 3470 E2=7*S0+M0 3480 X3=(E1+E2)/2 3490 GOTO1880 3500 IF F2=0 THEN 3540 3510 IF ABS((P-L5)/F2-P1/100)<.0001 THEN 3600 3520 IF (P-L5)/F2>P1/100 THEN 3580 3530 GOTO 3560 3540 IF ABS(P-P1/100)<.0001 THEN 3600 3550 IF P>P1/100 THEN 3580 3560 E1=X3 3570 GOTO 3480 3580 E2=X3 3590 GOTO 3480 3600 IF F2=0 THEN 3612 3604A$=" ###.## PERCENTILE(TRUNCATED )=#########.##" 3605 PRINT USING A$ ,P1,X3 3606 GOTO 3620 3608A$=" ###.## PERCENTILE =#########.##" 3609PRINT USING A$,P1,X3 3610 GOTO 3690 3612 IF V4=0 THEN 3608 3613A$=" ###.## PERCENTILE(UNTRUNCATED)=#########.##" 3614 PRINT USING A$ ,P1,X3 3620 IF V4=-77 THEN 3700 3630 IF F2=0 THEN 3690 3640 V3=F2 3650 F2=0 3660 L3=1 3664 V4=-77 3670 U3=1 3680 GOTO 3280 3690 GOTO 3190 3700 F2=V3 3703 V4=0 3710 L3=0 3720 U3=0 3730 GOTO 3690 3740 REM 3750 REM END OF PERCENTILE ROUTINE 3760 REM ******************************************************************** 3770 REM 3780 REM EXPECTED UTILITY ROUTINE 3790 REM 3800 REM 3810 DIM M(9),U(9),P(3) 3820 FOR I=1 TO 9:M(I)=A3(I-1):NEXT I 3822 FOR I=9 TO 17:U(I-8)=A3(I):NEXT I 3824 FOR I=18 TO 20:P(I-17)=A3(I):NEXT I 3830 G=P(1) 3832PRINTL$ 3840 M0=P(2) 3850 L1=P(3) 3860 S0=SQR(L1/(G-2)) 3862 IF M(9)>M0-4*S0THEN3866 3864 GOTO 4182 3866 IF M(1)M(K5) THEN 4170 4020 X3=I 4030 GOSUB 1880 4040 U1=(I-M(K5-1))*((U(K5)-U(K5-1))/(M(K5)-M(K5-1))) 4050 U1=U(K5-1)+U1 4060 U2=(U0+U1)/2 4065 U9=U2*(P-P0)+U9 4070 P0=P 4080 NEXT I7 4090 U9=U9/(1-K8) 4100 PRINT 4120A$="THE EXPECTED UTILITY IS #.##." 4121 PRINT USING A$ ,U9 4130 PRINT 4132 DIM V(1) 4133 V(1)=1 4134 A3(0)=V(1) 4135FOR I=1 TO 9:A3(I)=M(I):NEXT I 4136FOR I=1 TO 9:A3(I+9)=U(I):NEXT I 4137 FOR I=1 TO 3:A3(I+18)=P(I):NEXT I 4140 PRINT "WHEN YOU ARE READY TO CONTINUE TYPE '1'." 4150 GOSUB 9000 4160 CLOSE 1: CHAIN "CMODP" 4170 K5=K5+1 4180 GOTO 4030 4182 U9=0 4184 GOTO4100 4186U9=0 4188GOTO 4100 4190 REM ******************************************************** 5710 REM 5720 REM APPENDED GOSUBS FOLLOW 5730 REM 5740 REM 5750 REM********************************************************* 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************************************************************* 7500 REM ************************************************************ 7501 REM STUDENT'S T DISTRIBUTION HIGHEST DENSITY REGIONS 7502 REM INPUTS G J5 7503 REM J2 7504 REM 7505 Z8=.5 7506 N=G 7507 X9=1 7508 J1=0 7509 J2=X9 7510 GOSUB 6000 7511 P=2*P-1 7512 Z9=P 7513 IF P>J5 THEN 7517 7514 X9=X9+1 7515 Z8=Z9 7516 GOTO 7508 7517 X0=X9-1 7518 X2=X9 7519 X9=X0+(J5-Z8)*(X2-X0)/(Z9-Z8) 7520 J1=0 7521 J2=X9 7522 GOSUB 6000 7523 P=2*P-1 7524 IF ABS(P-J5)<.0001 THEN 7534 7525 IF P= 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 9050 REM--SUBROUTINE THAT DETERMINES IF RESTART HAS BEEN REQUESTED. 2 INPUTS 9055 INPUT O1,O2 9065 IF O1=-9999 THEN 9080 9070 IF O2=-9999 THEN 9080 9075 RETURN 9080 CLOSE 1: CHAIN "RSTRT" 9090 REM*************END ROUTINE 9999 END