10X$=SYS(CHR$(7)):R$=LEFT(X$,7):L$=RIGHT(X$,8) 13 REM *********************************************************************** 14 REM CMOD8 CMOD8 CMOD8 CMOD8 CMOD8 CMOD8 15 REM ********************************************************************** 20 REM ********************************************************************* 30 REM 40 REM SPECIFYING TYPICAL PRIOR M-GROUP PROPORTIONS 50 REM 60 REM ********************************************************************** 65 DIM P(5,5) 70 DIM #1,A1(111),A2(111),A3(111) 80 OPEN R$ AS FILE 1 110 GOSUB 5160 130A1(0)=8 140 PRINT L$ 150 X=0 160 S9=0 170 S8=0 180 V7=0 182 V2=0 190 DIM S(4,5) 210 PRINT L$ 220 PRINT " SPECIFICATION OF A TYPICAL PRIOR FOR M-GROUP PROPORTIONS" 230 PRINT 240 PRINT "THIS MODULE WILL ASSIST YOU IN SPECIFYING A PRIOR DISTRIBUTION" 250 PRINT "FOR YOUR ANALYSIS. THE MODEL REQUIRES THAT YOU HAVE EXCHANGEABLE" 260 PRINT "BELIEFS ABOUT THE GROUPS. THIS IMPLIES THAT BEFORE LOOKING AT" 270 PRINT "THE SAMPLE DATA YOU FEEL THAT YOUR KNOWLEDGE ABOUT ANY ONE GROUP" 280 PRINT "IS EQUIVALENT TO YOUR KNOWLEDGE ABOUT ANY OTHER. HENCE YOU FEEL" 290 PRINT "THAT THE SAME PRIOR DISTRIBUTION CAN ADEQUATELY SERVE FOR ALL" 300 PRINT "GROUPS." 310 PRINT 320PRINT"WE BEGIN BY ASKING YOU TO SPECIFY THE 25TH, 50TH AND 75TH" 330 PRINT "PERCENTILES OF YOUR PRIOR DISTRIBUTION." 340 PRINT 350 PRINT 360 PRINT "SPECIFY 25TH. YOUR BETTING ODDS ARE 3 TO 1 THAT PI IS GREATER" 370 PRINT "THAN THIS VALUE."; 380 GOSUB 9000 390 IF O1>0 THEN 420 400PRINT"REENTER. 25TH MUST BE GREATER THAN 0." 410 GOTO 380 420 IF O1<.97 THEN 430 423PRINT"REENTER. 25TH MUST BE LESS THAN .97." 424 GOTO 380 430 Q1=O1 440 PRINT 450 PRINT "SPECIFY 50TH. YOUR BETTING ODDS ARE EVEN THAT PI IS GREATER" 460 PRINT "THAN THIS VALUE."; 470 GOSUB 9000 480 IF O1>Q1 THEN 520 490PRINT"REENTER. 50TH MUST BE GREATER THAN 25TH." 500 GOTO 470 510 GOTO 3160 520 IF O1>=.03 THEN 526 522PRINT"REENTER. 50TH MUST NOT BE LESS THAN .03." 524 GOTO 470 526 IF O1<=.97 THEN 535 528PRINT"REENTER. 50TH MUST NOT BE GREATER THAN .97." 530 GOTO 470 535 Q2=O1 540 PRINT 550 PRINT "SPECIFY 75TH. YOUR BETTING ODDS ARE 3 TO 1 THAT PI IS LESS THAN" 560 PRINT "THIS VALUE."; 570 GOSUB 9000 580 IF O1>Q2 THEN 610 590PRINT"REENTER. 75TH MUST BE GREATER THAN 50TH." 600 GOTO 570 610 IF O1<1 THEN 620 612 PRINT"REENTER. 75TH MUST BE LESS THAN 1." 614 GOTO 570 620 Q3=O1 630 PRINT 640 REM ****************************************************************** 650 REM 660 PRINT "POSSIBLE APPROXIMATE DISTRIBUTIONS ARE BEING COMPUTED." 670 REM 680 REM ****************************************************************** 690 X=SQR(Q2*(1-Q1))-SQR(Q1*(1-Q2)) 700 X=X*X 710 C=.114/X 720 X7=1/X 730 A=C*Q2+1/3 740 B=C*(1-Q2)+1/3 750 K5=1 760 GOSUB 1680 770 IF ABS((S(1,2)-Q1))<.01 THEN 790 780 GOTO 830 790 IF ABS((S(1,3)-Q2))<.01 THEN 810 800 GOTO 830 810 IF ABS((S(1,4)-Q3)) >= .01 THEN 830 820 GOTO 2050 830 PRINT L$ 840 PRINT "HERE ARE THE PERCENTILES OF FOUR BETA DISTRIBUTIONS WHICH HAVE" 850 PRINT "BEEN FITTED TO YOUR PERCENTILE SPECIFICATIONS." 860 PRINT 870 PRINT " 10TH 25TH 50TH 75TH 90TH" 880 GOSUB 2000 890 X=SQR(Q2*(1-Q3))-SQR(Q3*(1-Q2)) 900 X=X*X 910 C=.114/X 920 A=C*Q2+1/3 930 B=C*(1-Q2)+1/3 940 K5=2 950 GOSUB 1680 960 C2=.057*(1/X+X7) 970 A=C2*Q2+1/3 980 B=C2*(1-Q2)+1/3 990 K5=3 1000 GOSUB 1680 1010 A=P(1,1)+P(2,1)+P(3,1) 1020 A=A/3 1030 B=P(1,2)+P(2,2)+P(3,2) 1040 B=B/3 1050 K5=4 1060 GOSUB 1680 1070 REM ******************************************************** 1080 REM 1090 REM END OF APPROXIMATION ROUTINE 1100 REM 1110 REM ********************************************************* 1120 PRINT 1130 GOSUB 4010 1140 GOSUB 9000 1150 IF O1=0 THEN 1220 1160 GOTO 1520 1170 REM ************************************************************* 1180 REM 1190 REM ROUTINE FOR RESPECIFYING PERCENTILES 1200 REM 1210 REM ************************************************************* 1220 PRINT 1222 PRINT "RESPECIFY PERCENTILES." 1230PRINT 1240GOTO360 1440 REM 1450 REM 1460 REM END OF SPECIFYING PERCENTILES 1470 REM 1480 REM *************************************************************** 1490 REM 1500 REM DETERMINES WHICH DISTRIBUTION HE WANTS 1510 REM 1520 IF O1=1 THEN 1640 1530 IF O1=2 THEN 1640 1540 IF O1=3 THEN 1640 1550 IF O1=4 THEN 1640 1560 PRINT "REENTER. MUST BE 0 OR NUMBER OF A DISTRIBUTION." 1570 GOSUB 9000 1580 GOTO 1150 1590 REM ******************************************************** 1600 REM 1610 REM PRINT PERCENTILES 1620 REM 1630 REM 1640 K5=O1 1650 A=P(K5,1) 1660 B=P(K5,2) 1670 GOTO 3430 1680 IF A>1.15 THEN 1800 1690 M2=2 1700 M7=M2/Q2 1710 M8=(M2-1)/Q2+2 1720 IF M7>M8 THEN 1740 1730 M7=M8 1740 IF M7-M2>1.15*K5 THEN 1770 1750 M2=M2+1 1760 GOTO 1700 1770 A=M2 1780 B=M7-M2 1790GOTO1804 1800 IF B<1.15 THEN 1690 1804 IF A+B<8000 THEN 1810 1806 A=8000*Q2 1808 B=8000-A 1810 P1=.1 1820 P(K5,1)=A 1830 P(K5,2)=B 1840 GOSUB 3770 1850 S(K5,1)=J2 1860 P1=.25 1870 GOSUB 3790 1880 S(K5,2)=J2 1890 P1=.5 1900 GOSUB 3790 1910 S(K5,3)=J2 1920 P1=.75 1930 GOSUB 3790 1940 S(K5,4)=J2 1950 P1=.9 1960 GOSUB 3790 1970 S(K5,5)=J2 1980 IF S9=1 THEN 2080 1990 IF K5=1 THEN 2020 2000A$=" # .## .## .## .## .##" 2001 PRINT USING A$ ,K5,S(K5,1),S(K5,2),S(K5,3),S(K5,4),S(K5,5) 2020 RETURN 2030 REM 2040 REM 2050 PRINT L$ 2060 PRINT "HERE ARE SOME OF THE CHARACTERISTICS OF THE BETA" 2070 PRINT "DISTRIBUTION FITTED TO YOUR PERCENTILE SPECIFICATIONS." 2080 PRINT 2090 M=A+B 2100REM 2240 J5=.5 2250 J8=S(K5,4)/S(K5,2) 2260 GOSUB 7000 2270A$=" HYPOTHETICAL SAMPLE SIZE(M)#######.##" 2271 PRINT USING A$ ,A+B 2280 IF V7=0 THEN 2300 2290A$=" MODE .##" 2291 PRINT USING A$ ,(A-1)/(M-2) 2300A$=" 10TH PERCENTILE .##" 2301 PRINT USING A$ ,S(K5,1) 2310A$=" 25TH PERCENTILE .##" 2311 PRINT USING A$ ,S(K5,2) 2320A$=" 50TH (MEDIAN) .##" 2321 PRINT USING A$ ,S(K5,3) 2330A$=" 75TH PERCENTILE .##" 2331 PRINT USING A$ ,S(K5,4) 2340A$=" 90TH PERCENTILE .##" 2341 PRINT USING A$ ,S(K5,5) 2350 IF V7=1 THEN 2380 2360 IF J2<.99 THEN 2370 2365 J2=.99 2370 GOTO 2400 2380 J1=H(1) 2390 J2=H(2) 2400A$=" 50% HDR .## - .##" 2401 PRINT USING A$ ,J1,J2 2410 IF V7=1 THEN 2490 2420 H(1)=J1 2430 H(2)=J2 2440 J5=.75 2450 J8=J1/J2 2460 GOSUB 7000 2470 IF J2<.99 THEN 2480 2475 J2=.99 2480 GOTO 2510 2490 J1=H(3) 2500 J2=H(4) 2510A$=" 75% HDR .## - .##" 2511 PRINT USING A$ ,J1,J2 2520 IF V7=1 THEN 2600 2530 H(3)=J1 2540 H(4)=J2 2550 J5=.95 2560 J8=J2/J1 2570 GOSUB 7000 2580 IF J2<.99 THEN 2590 2585 J2=.99 2590 GOTO 2620 2600 J1=H(5) 2610 J2=H(6) 2620A$=" 95% HDR .## - .##" 2621 PRINT USING A$ ,J1,J2 2630 PRINT 2640 IF V7=1 THEN 3480 2650 H(5)=J1 2660 H(6)=J2 2670 IF S9=1 THEN 2800 2680 PRINT "IF YOU DO NOT FEEL THAT THE HYPOTHETICAL SAMPLE SIZE (M)" 2690 PRINT "REFLECTS YOUR PRIOR INFORMATION ABOUT THE PROPORTIONS YOU CAN" 2700 PRINT "SPECIFY A DIFFERENT M. THIS WILL NOT AFFECT THE MEDIAN BUT" 2710 PRINT "WILL CHANGE THE HDRS AND OTHER PERCENTILES. A LARGER M WILL" 2720 PRINT "RESULT IN SHORTER INTERVALS, AND A SMALLER M IN LONGER ONES." 2730 PRINT 2740 REM *********************************************************** 2750 REM 2760 REM ROUTINE TO INSURE THAT THE PARAMETERS ARE OK AND TO 2770 REM MINIMAL VALUE THAT M CAN ASSUME 2780 REM 2790 REM 2795 IF V2=1 THEN 2930 2800 M2=3 2805 V2=1 2810 M7=3*S(K5,3)*M2*(M2-2)+M2 2820 M7=M7/(3*M2-4) 2830 IF M7<1.15 THEN 2850 2840 IF M2-M7>1.15 THEN 2880 2850 M2=M2+1 2870 GOTO 2810 2880 M7=INT(M2+1) 2890 IF M7= M7 THEN 3000 2980 PRINT "REENTER. INPUT MUST BE 0 OR AN ACCEPTABLE M VALUE." 2990 GOTO 2950 3000 M=O1 3010 O1=S(K5,3) 3020 GOTO 3220 3030 PRINT 3040 IF S8=0 THEN 3090 3050 PRINT "IF YOU WANT TO CHANGE THE MEDIAN TYPE THE NEW VALUE ELSE '0'."; 3070 GOSUB 9000 3080 GOTO 3160 3090 PRINT "YOU CAN CHANGE THE CENTERING OF THE DISTRIBUTION BY SPECIFYING" 3100 S8=1 3110 PRINT "A DIFFERENT MEDIAN. THIS WILL NOT AFFECT THE VALUE OF M." 3120 PRINT 3130 PRINT "IF YOU WANT TO CHANGE THE MEDIAN TYPE THE NEW VALUE." 3140 PRINT "IF YOU DO NOT TYPE '0'." 3150 GOSUB 9000 3160 IF O1=0 THEN 3690 3170 IF O1>=.03 THEN 3200 3180PRINT"REENTER. MEDIAN MUST BE AT LEAST .O3." 3190 GOTO 3150 3200 IF O1<=.97 THEN 3220 3205PRINT"REENTER. MEDIAN MUST NOT BE GREATER THAN .97." 3210 GOTO 3150 3220 A=O1*M 3225 V2=0 3230 S9=1 3240 L4=O1*M 3245 L3=O1*(M-2)+1 3250 IF L4>L3 THEN 3260 3252 A=L3 3254 L3=L4 3256 L4=A 3260 A=.5*(L3+L4) 3270 P1=.5 3275 B=M-A 3280 GOSUB 3770 3290 IF ABS(J2-O1)<.004 THEN 3340 3300 IF J2>O1 THEN 3333 3310 L3=A 3320 A=.5*(L4+A) 3330 GOTO 3260 3333 L4=A 3336 A=.5*(L3+A) 3338 GOTO 3260 3340 IF A<1.1 THEN 3390 3345 IF B>1.1 THEN 3430 3390 PRINT L$ 3392PRINT"THE MEDIAN YOU SPECIFIED IS NOT CONSISTENT WITH THE M" 3395 V2=1 3400 PRINT"VALUE YOU ARE USING. EXTREME MEDIAN VALUES REQUIRE LARGE" 3410PRINT"M VALUES. YOU SHOULD EITHER MODERATE YOUR MEDIAN ESTIMATE" 3412PRINT"OR INCREASE THE M VALUE." 3416PRINT"WHEN YOU ARE READY TO CONTINUE TYPE '1'."; 3420 GOSUB 9000 3422 A=P(K5,1) 3424 B=P(K5,2) 3430 PRINT L$ 3440 PRINT "HERE ARE SOME CHARACTERISTICS OF THE BETA DISTRIBUTION YOU" 3450 PRINT "ARE NOW CONSIDERING." 3460 IF S9=0 THEN 2080 3470 GOTO 1810 3480 REM 3490 REM 3500 REM ********************************************************** 3510 REM 3520 REM 3530 PRINT "THIS COMPLETES THE SPECIFICATION OF A TYPICAL PRIOR" 3540 PRINT "DISTRIBUTION. IF YOU ARE NOT GOING DIRECTLY TO THE" 3550 PRINT "POSTERIOR ANALYSES YOU SHOULD RECORD THE VALUE OF M." 3570 PRINT 3580 PRINT "IF YOU WANT TO GO TO THE POSTERIOR ANALYSIS TYPE '1' ELSE '0'."; 3600 GOSUB 9000 3610 IF O1=1 THEN 3670 3620 IF O1=0 THEN 3660 3630 PRINT 3640 PRINT "REENTER. INPUT MUST BE 0 OR 1." 3650 GOTO 3600 3660 CLOSE 1: CHAIN "RSTRT" 3670A2(0)=A+B 3671 I2=A1(1) 3672 IF I2=1 THEN 3680 3674 CLOSE 1: CHAIN "CMOD9" 3680 CLOSE 1: CHAIN "CMODA" 3690 V7=1 3700 PRINT L$ 3710 PRINT "HERE ARE SOME OF THE CHARACTERISTICS OF THE PRIOR DISTRIBUTION" 3720 PRINT "FITTED TO YOUR PRIOR BELIEFS ABOUT PI." 3730 PRINT 3740A$=" PARAMETER A ########.##" 3741 PRINT USING A$ ,A 3750A$=" PARAMETER B ########.##" 3751 PRINT USING A$ ,B 3760 GOTO 2100 3770 E1=0 3780 A7=0 3790 E2=1 3800 A8=.999999 3810 A6=P1 3820 GOSUB 5220 3830 S5=(A6-A7)/(A8-A7) 3835 IF S5<.85 THEN 3840 3837 S5=.85 3838 GOTO 3850 3840 IF S5>.15 THEN 3850 3845 S5=.15 3850 J2=E1+S5*(E2-E1) 3860 IF J2 >= 1 THEN 3970 3870 J1=0 3880 GOSUB 5000 3885 IF ABS(E1-E2)<.0001 THEN 3990 3890 IF ABS(P-P1)<.002 THEN 3990 3900 IF P>P1 THEN 3950 3910 E1=J2 3920 A7=P 3930 GOTO 3830 3940 A8=P 3950 E2=J2 3960 GOTO 3830 3970 J2=1 3980 GOTO 3990 3990IF J2<.99 THEN 4000 3995 J2=.99 4000 RETURN 4010 PRINT "COMPARE THE PERCENTILES OF THESE DISTRIBUTIONS AND DECIDE" 4020 PRINT "WHICH MOST CLOSELY CORRESPONDS TO YOUR PRIOR BELIEFS." 4030 PRINT "YOU CAN EITHER TENTATIVELY ACCEPT THIS DISTRIBUTION OR" 4040 PRINT "RESPECIFY THE PERCENTILES." 4050 PRINT 4060 PRINT "TYPE THE NUMBER OF THE DISTRIBUTION YOU WANT OR" 4070 PRINT "TYPE '0' IF YOU WANT TO RESPECIFY THE PERCENTILES." 4080 RETURN 4900 REM ************************************************************** 4910 REM 4920 REM APPENDED GOSUBS FOLLOW 4925 REM 4930 REM ***************************************************************** 5000 REM *************************************************** 5005 REM BETA CDF ROUTINE 5010 REM INPUT A B J2 5015 REM OUTPUT P 5020 REM GOSUB'S TO BE CALLED PRIOR 5160 AND 5220 5025 DIM W(16),O(16) 5030 GOSUB 5340 5035 IF A+B>85 THEN 5280 5040 P=0 5045 C6=0 5050 IF A>1 THEN 5080 5055 C6=A 5060 C7=B 5065 A=C7 5070 B=C6 5075 J2=1-J2 5080 D0=(J2-J1)*.5 5085 D1=(J1+J2)*.5 5090 FOR I1=1 TO 16 5095 D9=D0*O(I1)+D1 5100 IF D9=0 THEN 5115 5105 IF D9=1 THEN 5115 5107D9=LOG(D9)*(A-1)+LOG(1-D9)*(B-1) 5108 IF D9<-80 THEN 5115 5110 P=P+W(I1)*EXP(D9) 5115 NEXT I1 5120 P=P*F0 5125 P=P*D0 5130 IF C6=0 THEN 5155 5135 A=C6 5140 B=C7 5145 P=1-P 5150 J2=1-J2 5155 RETURN 5160 FOR I1=1 TO 16 5165 READ W(I1),O(I1) 5170 NEXT I1 5175 DATA 2.71525E-02,-.989401 5180 DATA 6.22535E-02,-.944575,9.51585E-02,-.865631 5185 DATA .124629,-.755404,.149596,-.617876 5190 DATA .169156,-.458017,.182603,-.281604,.189451,-9.50125E-02 5195 DATA .189451,9.50125E-02,.182603,.281604,.169156,.458017 5200 DATA .149596,.617876,.124629,.755404 5205 DATA 9.51585E-02,.865631,6.22535E-02,.944575,2.71525E-02 5210 DATA .989401 5215 RETURN 5220 G9=A+B 5225 GOSUB 5850 5230 F0=G0 5235 G9=A 5240 GOSUB 5850 5245 F0=F0-G0 5250 G9=B 5255 GOSUB 5850 5260 F0=F0-G0 5265 IF A+B>85 THEN 5275 5270 F0=EXP(F0) 5275 RETURN 5280 W1=(B*J2)^(1/3) 5285 W2=(A*(1-J2))^(1/3) 5290 GOSUB 5325 5295 I1=P 5300 W1=(B*J1)^(1/3) 5305 W2=(A*(1-J1))^(1/3) 5310 GOSUB 5325 5315 P=I1-P 5320 RETURN 5325 Y3=3*(W1*(1-1/9/B)-W2*(1-1/9/A))/SQR(W1*W1/B+W2*W2/A) 5330 GOSUB 8000 5335 RETURN 5340 REM 2/16/76 CHANGED TO ALL LOG 5345 D2=F0+(A-1)*LOG(J2)+(B-1)*LOG(1-J2) 5350 IF D2<-80 THEN 5370 5355 IF D2>85 THEN 5380 5360 D2=EXP(D2) 5365 RETURN 5370 D2=1.E-37 5375 RETURN 5380 D2=1.E+37 5385 RETURN 5390 REM 5395 REM END OF BETA CDF ROUTINE 5400 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 18.001 THEN 7030 7028 RETURN 7030 IF P0>J5 THEN 7038 7031 J7=J8 7032 J8=J8*J8 7034 P9=P0 7036 GOTO 7016 7038 J9=J7 7040 J0=J8 7042 J8=(J5-P9)/(P0-P9) 7044 IF J8>.15 THEN 7050 7046 J8=.15 7048 GOTO 7054 7050 IF J8<.85 THEN 7054 7052 J8=.85 7054 J8=J8*(J0-J9)+J9 7056 GOSUB 7082 7058 IF J8<-99 THEN 7066 7060 GOSUB 5000 7062 J3=P 7064 IF ABS(J3-J5)>.001 THEN 7068 7066 RETURN 7068 IF J3>J5 THEN 7076 7070 J9=J8 7072 P9=J3 7074 GOTO 7042 7076 J0=J8 7078 P0=J3 7080 GOTO 7042 7082 J=(A-1)/(B-1) 7084 J1=(J8^J-1)/(J8^(J+1)-1) 7086 J2=J8*J1 7088 IF J2<1 THEN 7094 7090 J8=J8*.95 7092 GOTO 7084 7094 RETURN 7096 REM END OF BETA HDR ROUTINE 7098 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) 8021 IF 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