10X$=SYS(CHR$(7)):R$=LEFT(X$,7):L$=RIGHT(X$,8) 12 REM *************************************************************** 15 REM CMODD CMODD CMODD CMODD CMODD CMODD 20 REM ************************************************************* 30 REM 40 REM INVERSE-CHI DISTRIBUTION 50 REM 60 REM ************************************************************* 70 DIM #1,A1(111),A2(111),A3(111) 80 OPEN R$ AS FILE 1 110 I3=A1(2) 120 REM ***************************************************************** 130 REM 140 REM I3=8 IF ENTRY IS VIA EXPECTED UTILITIES 150 REM 160 IF I3=8 THEN 4000 170 REM 180 REM **************************************************************** 190 L9=0 200 G=A3(0):S0=A3(1) 210 IF G=0 THEN 230 220 L9=1 230 REM ****************************************************************** 240 REM 250 REM S6=1 IF WHEN ROUTINE IS EXITED YOU WANT TO ENTER 260 REM DIFFERENT INVERSE CHI DISTRIBUTION 270 REM 280 S6=0 290 REM 300 REM ****************************************************************** 310 A1(0)=13 320 REM 330 REM INVERSE-CHI DISTRIBUTION EVALUATION 340 REM 350 PRINT L$ 355 PRINT " INVERSE CHI DISTRIBUTION EVALUATION" 356 PRINT 360 PRINT "THIS MODULE ALLOWS YOU TO EXAMINE THE CHARACTERISTICS OF" 370 PRINT "AN INVERSE CHI DISTRIBUTION." 380 GOTO 560 390 REM ******************************************************************* 400 PRINT 410 PRINT "TYPE THE NUMBER OF THE OPTION YOU WANT." 420 PRINT " 1. PERCENTILES" 430 PRINT " 2. HIGHEST DENSITY REGIONS" 440 PRINT " 3. PROBABILITY ABOVE AND BELOW SOME VALUE" 450 PRINT " 4. PROBABILITY BETWEEN TWO VALUES" 460 PRINT " 5. EXIT MODULE" 470 GOSUB 9000 480 IF O1=5 THEN 2550 490 I=O1 500 GOTO 1250 510 REM ******************************************************************* 520 REM 530 REM S6=1 IF THE PARAMETERS OF THE DISTRIBUTION ARE ALREADY IN 540 REM S6=0 IF THE PARAMETERS ARE TO BE ENTERED 550 REM 560 IF S6=1 THEN 400 570 IF L9=1 THEN 400 580 S6=1 590 REM ***************************************************************** 600 REM 610 REM BEGINNING OF ROUTINE TO INPUT DISTRIBUTION PARAMETERS 620 REM 630 PRINT 640PRINT"INPUT DEGREES OF FREEDOM.(MIN=6 MAX=2000)"; 650 GOSUB 9000 660 G=O1 670 IF G<6 THEN 760 675 IF G>2000 THEN 760 680 PRINT 690 PRINT "INPUT THE SCALE PARAMETER."; 700 GOSUB 9000 710 IF O1 <= 0 THEN 740 720 S0=O1 730 GOTO 400 740 PRINT "REENTER. SCALE PARAMETER MUST BE POSITIVE." 750 GOTO 690 760PRINT"REENTER. MINIMUM IS 6. MAXIMUM IS 2000." 770 GOTO 640 780 REM 790 REM END OF ROUTINE TO INPUT THE DISTRIBUTION PARAMETERS 800 REM 810 REM ********************************************************************LIS 820 REM 830 REM BEGINNINING OF ROUTINE THAT DETERMINES WHAT YOU WANT TO DO 840 REM AFTER YOU HAVE FINISHED A ROUTINE 850 REM 860 PRINT L$ 870 PRINT "TYPE THE NUMBER OF THE OPTION YOU WANT." 880 PRINT " 1. FURTHER EVALUATE THIS DISTRIBUTION." 890 IF L9=1 THEN 980 900 PRINT " 2. EVALUATE ANOTHER INVERSE CHI DISTRIBUTION" 910 PRINT " 3. EXIT MODULE" 920 GOSUB 9000 930 IF O1=3 THEN 2550 940 IF O1=1 THEN 1060 950 IF O1=2 THEN 1040 960 PRINT "REENTER. INPUT MUST BE 1,2 OR 3." 970 GOTO 920 980 PRINT " 2. EVALUATE THE POSTERIOR DISTRIBUTION ON THE MEAN" 990 PRINT " 3. EXIT MODULE" 995 GOSUB 9000 1000 IF O1=2 THEN 1030 1010 IF O1=3 THEN 2700 1020 IF O1=1 THEN 1060 1024 PRINT "REENTER. INPUT MUST BE 1,2 OR 3." 1026 GOTO 995 1030 CLOSE 1: CHAIN "cmodc" 1040 S6=0 1050 GOTO 1070 1060 S6=1 1070 PRINT L$ 1090 GOTO 560 1100 REM 1110 REM END OF ROUTINE TO DETERMINE WHERE YOU ARE GOING 1120 REM 1130 REM**************************************************************** 1140 PRINT L$ 1150A$="-----------------------------------------------------------" 1151PRINTA$ 1160 PRINT " INVERSE-CHI DISTRIBUTION" 1170A$="DEGREES OF FREEDOM =#######.## SCALE PARAMETER =########.##" 1171 PRINT USING A$ ,G,S0 1190A$="-----------------------------------------------------------" 1191PRINT A$ 1200 RETURN 1210 REM *************************************************************** 1220 REM 1230 REM ROUTINE TO SELECT OPTION 1240 REM 1250 GOSUB 5775 1260 REM 1270 IF I=3 THEN 1630 1280 IF I=1 THEN 1860 1290 IF I=4 THEN 2210 1300 IF I=2 THEN 1380 1310 PRINT 1320 PRINT "REENTER. YOU DID NOT SPECIFY 1,2,3,4 OR 5." 1330 GOTO 470 1340 REM 1350 REM END OF ROUTINE TO SELECT OPTION 1360 REM 1370 REM ********************************************************** 1380 PRINT L$ 1390 REM 1400 PRINT " OPTION 2: HIGHEST DENSITY REGIONS" 1410 PRINT 1420 PRINT "TO EXIT ROUTINE TYPE '0' WHEN ASKED FOR INPUT." 1430 PRINT "INPUT P% AS NUMBER FROM 1 THROUGH 99." 1440 GOSUB 1150 1450 PRINT "INPUT P%"; 1460 GOSUB 9000 1470 IF O1=0 THEN 860 1480 J5=O1/100 1490 IF O1<1 THEN 1570 1500 IF O1>99 THEN 1570 1510 GOSUB 7300 1520 J1=J1*S0 1530 J2=J2*S0 1540A$=" ###.#% HDR =(#########.##,##########.##)" 1541 PRINT USING A$ ,J5*100,J1,J2 1560 GOTO 1450 1570 PRINT 1580 PRINT "REENTER. INPUT MUST BE 0 OR P% FROM 1 THRU 99." 1590 PRINT 1600 GOTO 1450 1610 REM 1620 REM *********************************************************** 1630 PRINT L$ 1640 PRINT " OPTION 3: PROBABILITY ABOVE AND BELOW SOME VALUE" 1650 PRINT 1660 PRINT "TO EXIT ROUTINE TYPE '0' WHEN ASKED FOR INPUT." 1670 PRINT "INPUTTED VALUE MUST BE POSITIVE." 1680 GOSUB 1150 1690 PRINT "INPUT VALUE"; 1700 GOSUB 9000 1710 IF O1=0 THEN 860 1720 X3=O1 1730 IF X3>0 THEN 1760 1740 PRINT "REENTER. VALUE MUST BE GREATER THAN 0." 1750 GOTO1700 1760 X=S0*S0/X3/X3 1770 GOSUB 5500 1780 X=O1 1800A$=" PROB( X > ########.##) =#.##" 1801 PRINT USING A$ ,O1,P 1820A$=" PROB( X < ########.##) =#.##" 1821 PRINT USING A$ ,O1,1-P 1830 GOTO 1690 1840 REM 1850 REM ******************************************************** 1860 PRINT L$ 1870 PRINT " OPTION 1: PERCENTILES" 1880 PRINT 1890 PRINT "TO EXIT ROUTINE TYPE '0' WHEN ASKED FOR INPUT." 1900 PRINT "INPUT PERCENTILE AS NUMBER FROM .5 THROUGH 99.5." 1910 GOSUB 1150 1920 PRINT "INPUT PERCENTILE"; 1930 GOSUB 9000 1940 IF O1=0 THEN 860 1950 P9=O1/100 1960 IF O1<.5 THEN 1980 1970 IF O1 <= 99.5 THEN 2030 1980 PRINT 1990 PRINT "REENTER. INPUT MUST BE 0 OR PERCENTILE FROM .5 TO 99.5." 2000 PRINT "GREATER THAN 0 AND LESS THAN 100." 2010 PRINT 2020 GOTO 1920 2030 E2=2*S0 2040 E1=0 2050 X3=(E1+E2)/2 2060 X=S0*S0/X3/X3 2070 GOSUB 5500 2080 P=1-P 2090 IF ABS(P-P9)<.001THEN 2150 2100 IF P>P9 THEN 2130 2110 E1=X3 2120 GOTO 2050 2130 E2=X3 2140 GOTO 2050 2150 REM 2170A$=" ##.## PERCENTILE = ########.##" 2171 PRINT USING A$ ,O1,X3 2180 GOTO 1920 2190 REM 2200 REM ****************************************************************** 2210 PRINT L$ 2220 PRINT " OPTION 4: PROBABILITY X IS BETWEEN TWO VALUES" 2230 PRINT 2240 PRINT "TO EXIT ROUTINE TYPE '0' WHEN YOU ARE ASKED TO INPUT VALUES." 2250 GOSUB 1150 2260 PRINT "INPUT SMALLER VALUE"; 2270 GOSUB 9000 2280 X3=O1 2290 IF X3=0 THEN 2350 2300 IF X3>0 THEN 2350 2310 PRINT 2320 PRINT "THE POINTS MUST BE GREATER THAN 0. PLEASE RESPECIFY." 2330 PRINT 2340 GOTO 2260 2350 PRINT "INPUT LARGER VALUE"; 2360 GOSUB 9000 2370 IF O1 <> 0 THEN 2380 2375 IF X3=0 THEN 860 2380 IF X3=0 THEN 2320 2390 X4=O1 2400 IF X3M(K5) THEN 4390 4260 X=S0*S0/I/I 4270 GOSUB 5500 4275 P=1-P 4280 U1=(I-M(K5-1))*((U(K5)-U(K5-1))/(M(K5)-M(K5-1))) 4284 U1=U(K5-1)+U1 4285 U2=(U0+U1)/2 4290 U9=U9+U2*(P-P0) 4295 U0=U1 4310 P0=P 4330 NEXT I7 4332 IF 1-P<1THEN 4335 4333 U9=1 4334 GOTO 4370 4335 K8=K8+1-P 4340 U9=U9/(1-K8) 4350 PRINT 4370A$="THE EXPECTED UTILITY IS #.## ." 4371 PRINT USING A$ ,U9 4372 PRINT 4375 PRINT "WHEN YOU ARE READY TO CONTINUE TYPE '1'."; 4376 GOSUB 9000 4377 DIM V(1) 4378 V(1)=1 4379A3(0)=V(1):FOR I=1 TO 9:A3(I)=M(I):NEXT I 4380FOR I=1 TO 9:A3(I+9)=U(I):NEXT I 4381FOR I=1 TO 3:A3(I+17)=P(I):NEXT I 4382 CLOSE 1:CHAIN "CMODP" 4390 K5=K5+1 4400 GOTO 4260 5500 REM ******************************************************** 5501 REM CHI-SQUARE CDF ROUTINE-LOWER TAIL 5502 REM INPUT G X 5503 REM OUTPUT P 5504 REM PRIOR GOSUB 5775 5505 REM 5506 REM 5510 IF G>30 THEN 5795 5515 T0=.5*G-1 5520 X=X*.5 5525 T=81.4983 5530 P=5.575E-35*(T+X)^T0 5535 T=69.9622 5540 P=P+4.0883E-30*(T+X)^T0 5545 T=61.0585 5550 P=P+2.45182E-26*(T+X)^T0 5555 T=53.6086 5560 P=P+3.60577E-23*(T+X)^T0 5565 T=47.1531 5570 P=P+2.01052E-20*(T+X)^T0 5575 T=41.4517 5580 P=P+5.35019E-18*(T+X)^T0 5585 T=36.3584 5590 P=P+7.8198E-16*(T+X)^T0 5595 T=31.776 5600 P=P+6.89418E-14*(T+X)^T0 5605 T=27.6359 5610 P=P+3.91774E-12*(T+X)^T0 5615 T=23.8873 5620 P=P+1.50701E-10*(T+X)^T0 5625 T=20.4915 5630 P=P+4.07286E-09*(T+X)^T0 5635 T=17.418 5640 P=P+7.96081E-08*(T+X)^T0 5645 T=14.6427 5650 P=P+1.15132E-06*(T+X)^T0 5655 T=12.1461 5660 P=P+1.25447E-05*(T+X)^T0 5665 T=9.9121 5670 P=P+1.04461E-04*(T+X)^T0 5675 T=7.92754 5680 P=P+6.72163E-04*(T+X)^T0 5685 T=6.18154 5690 P=P+3.36935E-03*(T+X)^T0 5695 T=4.66508 5700 P=P+.013226*(T+X)^T0 5705 T=3.37077 5710 P=P+4.07325E-02*(T+X)^T0 5715 T=2.29256 5720 P=P+9.81663E-02*(T+X)^T0 5725 T=1.4256 5730 P=P+.183323*(T+X)^T0 5735 T=.766097 5740 P=P+.258807*(T+X)^T0 5745 T=.311239 5750 P=P+.258774*(T+X)^T0 5755 T=5.90199E-02 5760 P=P+.142812*(T+X)^T0 5761IF X<80 THEN 5765 5762P=1 5763RETURN 5765 P=1-(T1*P*EXP(-X)) 5770 RETURN 5775 G9=.5*G 5778 IF G>30 THEN 5790 5780 GOSUB 5850 5785 T1=1/EXP(G0) 5790 RETURN 5795 X2=((X/G)^(1/3)-(1-2/9/G))/SQR(2/9/G) 5800 Y3=X2 5805 GOSUB 8000 5810 RETURN 5812 REM 5813 REM END OF CHI-SQUARE CDF ROUTINE 5815 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 1830 THEN 7307 7306 GOSUB 5775 7307 J8=1 7308 GOSUB 7337 7309 X=1/(J1*J1) 7310 GOSUB 5500 7311 J3=P 7312 X=1/(J2*J2) 7313 GOSUB 5500 7314 J3=J3-P 7315 IF ABS(J3-J5)>.0001 THEN 7317 7316 RETURN 7317 IF J3>J5 THEN 7320 7318 J8=J8+1 7319 GOTO 7308 7320 J9=J8-1 7321 J0=J8 7322 J8=(J0+J9)/2 7323 GOSUB 7337 7324 X=1/(J1*J1) 7325 GOSUB 5500 7326 J3=P 7327 X=1/(J2*J2) 7328 GOSUB 5500 7329 J3=J3-P 7330 IF ABS(J3-J5)>.0001 THEN 7332 7331 RETURN 7332 IF J3>J5 THEN 7335 7333 J9=J8 7334 GOTO 7322 7335 J0=J8 7336 GOTO 7322 7337 J=J8*(1+EXP(-2*J8/(G+1)))/(1-EXP(-2*J8/(G+1))) 7338 J1=1/SQR(J+J8) 7339 J2=1/SQR(J-J8) 7340 RETURN 7341 REM 7342 REM END OF ROUTINE FOR INVERSE CHI HDR'S 7343 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