Compucolor.org – Virtual Media

Listing of file='DISREG.BAS;01' on disk='vmedia/statistics_2-sector.ccvf'

5 REM   DISREG
6 REM   FREQUENCY DISTRIBUTION REGRESSION
7 REM  WRITTEN BY WALTER DEGLER  4/5/79
20 DIM N(39),X(200),F(200)
22 DIM D(73,5),PC$(4,1)
25 PLOT 12,14,27,24,6,2
30 INPUT "IS DATA TO BE ENTERED? ";Z$
50 IF LEFT$ (Z$,1)= "Y"THEN GOSUB 2000
75 DATA ".75",".25",".90",".10",".95",".05",".975",".025",".99",".01"
80 DATA "GOOD","BAD","REASONABLE","TOO GOOD"
100 FOR I= 0TO 4:FOR J= 0TO 1
125 READ PC$(I,J)
150 NEXT J,I
175 READ A$,B$,C$,D$
1000 REM  SELECT FREQUENCY DISTRIBUTION
1010 PLOT 12,14,6,2
1025 PRINT "SELECT NUMBER OF DESIRED CHOICE:"
1050 PRINT "1 - BINOMIAL DISTRIBUTION"
1075 PRINT "2 - NORMAL DISTRIBUTION"
1100 PRINT "3 - POISSON DISTRIBUTION"
1125 PRINT "4 - DISPLAY T-DISTRIBUTION TABLE"
1150 PRINT "5 - DISPLAY CHI-SQUARE TABLE"
1175 PRINT "6 - DISPLAY NORMAL DISTRIBUTION TABLE"
1200 PRINT "7 - CHI-SQUARE TEST FOR LAST DISTRIBUTION"
1210 PRINT "8 - END PROGRAM"
1225 INPUT Z
1230 PLOT 15
1250 ON ZGOSUB 4000,5000,6000,11000,12000,13000,14000,1500
1275 GOTO 1000
1500 LOAD "MENU":RUN
1999 REM
2000 REM  INPUT DATA
2025 INPUT "DATA SOURCE (F-FILE OR K-KEYBOARD): ";Z$
2030 INPUT "ARE CLASS MARKS SUCCESSIVE INTEGERS FROM 0 UP? ";Y$
2040 Y$= LEFT$ (Y$,1)
2050 IF Z$= "F"THEN 2500
2075 INPUT "NUMBER OF CLASSES: ";NO
2100 PLOT 12,15,27,11,6,1
2110 IF Y$= "Y"THEN PRINT "ENTER FREQUENCIES IN INCREASING CLASS MARK ORDER:":GOTO 2150
2125 PRINT "ENTER CLASS MARK AND FREQUENCY OF EACH CLASS:"
2150 PLOT 6,3
2175 INPUT "#";I
2200 IF I< 1THEN PLOT 27,24,6,2:GOTO 3000
2225 PRINT SPC( 6);:PLOT 28
2230 IF Y$= "Y"THEN X(I- 1)= I- 1:PRINT I- 1:GOTO 2275
2250 INPUT "";X(I- 1)
2275 PRINT SPC( 12);:PLOT 28
2300 INPUT "";F(I- 1)
2325 GOTO 2175
2500 PRINT :PLOT 6,1
2510 IF Y$= "Y"THEN INPUT "FILE NAME, FREQUENCY TYPE #: ";F$,T2:GOTO 2550
2525 INPUT "FILE NAME, DATA TYPE #, FREQUENCY TYPE #: ";F$,T1,T2
2550 PRINT :PLOT 6,2
2575 FILE "R",1,F$,4
2600 GET 1,T2,5;NO
2625 FOR I= 0TO NO- 1
2630 IF Y$= "Y"THEN X(I)= I:GOTO 2675
2650 GET 1,T1,9+ 4* I;X(I)
2675 GET 1,T2,9+ 4* I;F(I)
2700 NEXT
2725 FILE "C",1
2999 REM
3000 REM  COMPUTE SUMS
3025 FOR I= 0TO NO- 1
3050 F= F+ F(I)
3075 T= F(I)* X(I)
3100 FX= FX+ T
3125 FS= FS+ T* X(I)
3150 NEXT
3175 M= FX/ F
3200 V= (F* FS- FX* FX)/ (F* (F- 1))
3225 SD= SQR (ABS (V))
3250 W= ABS (.5* (X(1)- X(0)))
3275 RETURN
3999 REM
4000 REM  BINOMIAL DISTRIBUTION
4025 FC= M/ (NO- 1- M)
4050 P(0)= ((NO- 1- M)/ (NO- 1))^ (NO- 1)
4075 FOR I= 1TO NO- 1
4100 P(I)= P(I- 1)* (NO- I)* FC/ I
4125 NEXT
4200 PLOT 12
4500 PRINT SPC( 21);"BINOMIAL DISTRIBUTION"
4525 PLOT 15,6,1
4550 PRINT
4575 PRINT "COUNT    PROB. OF COUNT    EXPECTED FREQ.    OBSERVED FREQ."
4580 PLOT 6,3
4590 PRINT
4600 FOR I= 0TO NO- 1
4625 PRINT " ";X(I);TAB( 11);P(I);TAB( 30);F* P(I);TAB( 49);F(I)
4650 NEXT
4675 DF= NO- 2
4700 GOTO 10000
4999 REM
5000 REM  NORMAL DISTRIBUTION
5025 IF NF= 1THEN 5200
5050 FILE "R",1,"NORMAL",10
5075 FOR I= 0TO 39
5100 GET 1,1,9+ 4* I;N(I)
5125 NEXT
5150 FILE "C",1
5175 NF= 1
5200 FOR I= 0TO NO- 1
5225 Z1= 10* (X(I)- W- SD)/ M
5250 X= ABS (Z1)
5275 GOSUB 9000
5300 U= SGN (Z1)* Y
5325 Z2= 10* (X(I)+ W- SD)/ M
5350 X= ABS (Z2)
5375 GOSUB 9000
5400 P(I)= ABS (U- SGN (Z2)* Y)
5425 NEXT
5450 PLOT 12
5500 PRINT SPC( 22);"NORMAL DISTRIBUTION"
5525 PLOT 15,6,1
5530 PRINT
5550 PRINT " MARK    AREA FOR CLASS    EXPECTED FREQ.    OBSERVED FREQ."
5575 DF= NO- 3
5600 GOTO 4580
5999 REM
6000 REM  POISSON DISTRIBUTION
6025 P(0)= EXP (- M)
6050 FOR I= 1TO NO- 1
6075 P(I)= P(I- 1)* M/ I
6100 NEXT
6150 PLOT 12
6500 PRINT SPC( 22);"POISSON DISTRIBUTION"
6525 DF= NO- 2
6550 GOTO 4525
8999 REM
9000 REM   AREA UNDER NORMAL CURVE FROM 0 TO X ( X>=0 )
9025 FOR K= 0TO 39
9050 IF K< XTHEN 9125
9075 Y= (X- K- 1)* (N(K)- N(K- 1))+ N(K- 1)
9100 RETURN
9125 NEXT
9150 Y= .5
9175 RETURN
9999 REM
10000 REM  HOW TO CONTINUE ROUTINE
10025 PLOT 6,1,3,0,31
10050 INPUT "ENTER 1 TO RETURN OR 2 TO SAVE, THEN RETURN: ";Z
10075 IF Z< > 2THEN RETURN
10100 PLOT 27,4:PRINT "SAV DISREG.DSP 6000-6FFF":PLOT 27,27
10125 RETURN
10999 REM
11000 REM  DISPLAY STUDENT'S T-DISTRIBUTION
11010 IF T0= 1THEN 11180
11025 FILE "R",1,"T",6
11050 FOR I= 0TO 5
11075 FOR J= 0TO 33
11100 GET 1,I+ 1,9+ 4* J;D(J,I)
11125 NEXT J,I
11150 FILE "C",1
11175 T0= 1
11180 PLOT 12
11190 PLOT 6,1
11200 INPUT "BEGINNING 'DF' NUMBER (OR '0' TO RETURN): ";B
11210 IF Z> 120THEN B= B+ 1
11212 Z= B
11214 IF Z> = 30THEN B= 30
11216 IF Z> = 40THEN B= B+ 1
11218 IF Z> = 60THEN B= B+ 1
11220 IF Z> = 120THEN B= B+ 1
11225 E= B+ 23:IF E> 33THEN E= 33
11250 PLOT 12,6,2
11275 PRINT SPC( 20);"STUDENT'S T-DISTRIBUTION"
11300 PRINT SPC( 22);"(PERCENTILE VALUES)"
11325 PRINT
11330 PLOT 6,1
11350 PRINT " DF  .995      .990      .975      .950      .900      .800"
11375 PRINT
11380 PLOT 6,3
11400 FOR I= B- 1TO E
11425 IF I< 30THEN X$= STR$ (I+ 1):GOTO 11550
11450 IF I= 30THEN X$= " 40"
11475 IF I= 31THEN X$= " 60"
11500 IF I= 32THEN X$= "120"
11525 IF I= 33THEN X$= " -"
11550 PRINT X$;
11575 FOR J= 0TO 5
11600 PRINT TAB( 4+ 10* J);D(I,J);
11625 NEXT J
11650 PRINT ""
11675 NEXT I
11700 PLOT 3,0,31
11725 GOTO 11190
11999 REM
12000 REM  DISPLAY CHI-SQUARE DISTRIBUTION
12010 IF C0= 1THEN 12180
12025 FILE "R",1,"CHISQR",6
12050 FOR I= 0TO 5
12075 FOR J= 0TO 73
12100 GET 1,I+ 1,9+ 4* J;D(J,I)
12125 NEXT J,I
12150 FILE "C",1
12175 C0= 1
12180 PLOT 12
12190 PLOT 6,1
12200 INPUT "BEGINNING 'DF' NUMBER (OR '0' TO RETURN): ";B
12210 IF B= 0THEN RETURN
12215 IF B> = 30THEN B= INT (B/ 10)+ 27
12220 IF B> 37THEN B= 37
12225 E= B+ 6:IF E> 36THEN E= 36
12250 PLOT 12,6,2
12275 PRINT SPC( 20);"CHI-SQUARE DISTRIBUTION"
12300 PRINT SPC( 22);"(PERCENTILE VALUES)"
12325 PRINT
12330 PLOT 6,1
12350 PRINT " DF  .995      .990      .975      .950      .900      .750"
12375 PRINT "     .500      .250      .100      .050      .025      .010"
12410 PLOT 6,3
12425 FOR I= B- 1TO E
12430 PRINT
12450 IF I< 30THEN X= I+ 1:GOTO 12500
12475 X= 10* (I- 26)
12500 PRINT X;
12525 FOR J= 0TO 5
12550 PRINT TAB( 4+ 10* J);D(I+ I,J);
12575 NEXT J
12600 PRINT ""
12625 FOR J= 0TO 5
12650 PRINT TAB( 4+ 10* J);D(2* I+ 1,J);
12675 NEXT J
12700 PRINT ""
12725 NEXT I
12750 PLOT 3,0,31
12775 GOTO 12190
12999 REM
13000 REM  DISPLAY NORMAL DISTRIBUTION
13010 IF N0= 1THEN 13180
13025 FILE "R",1,"NORMAL",6
13050 FOR I= 0TO 1
13075 FOR J= 0TO 39
13100 GET 1,I+ 1,9+ 4* J;D(J,I)
13125 NEXT J,I
13150 FILE "C",1
13175 N0= 1
13180 PLOT 12
13190 PLOT 6,1
13200 INPUT "BEGINNING ABSCISSA NUMBER (OR '10' TO RETURN): ";B
13210 IF B= 10THEN RETURN
13215 IF B> 3.9THEN B= 3.9
13220 B= 10* B
13225 E= B+ 23:IF E> 39THEN E= 39
13250 PLOT 12,6,2
13275 PRINT SPC( 22);"STANDARD NORMAL CURVE"
13300 PRINT
13325 PRINT
13330 PLOT 6,1
13350 PRINT " X         ORDINATE AT X      AREA UNDER CURVE FROM 0 TO X"
13375 PLOT 6,3
13400 FOR I= BTO E
13450 PRINT I/ 10;TAB( 14);D(I,0);TAB( 40);D(I,1)
13475 NEXT I
13500 PLOT 3,0,31
13525 GOTO 13190
13999 REM
14000 REM  COMPUTE CHI-SQUARE AND GET VALUES FROM TABLE
14025 CS= 0
14050 FOR I= 0TO NO- 1
14060 X= F* P(I)
14075 CS= CS+ (X- F(I))* (X- F(I))/ X
14100 NEXT
14175 FILE "R",1,"CHISQR",1
14200 IF DF> 30THEN 14350
14225 FOR J= 2TO 6
14250 GET 1,8- J,1+ 8* DF;C1(J- 2)
14275 GET 1,J,5+ 8* DF;C2(J- 2)
14300 NEXT J
14325 GOTO 15000
14350 IF DF< 101THEN 14500
14375 FOR J= 2TO 6
14400 GET 1,8- J,297;C1(J- 2)
14425 GET 1,J,301;C2(J- 2)
14450 NEXT J
14475 GOTO 15000
14500 FOR J= 41TO 91STEP 10
14525 IF DF< JTHEN X1= 4* (J- 1)/ 5+ 209:X2= J- 11:GOTO 14600
14550 NEXT J
14575 X1= 289:X2= 90
14600 FOR J= 2TO 6
14625 GET 1,8- J,X1;C1(J- 2)
14650 GET 1,J,X1+ 4;C2(J- 2)
14675 GET 1,8- J,X1+ 8;C1(J+ 3)
14700 GET 1,J,X1+ 12;C2(J+ 3)
14725 C1(J- 2)= C1(J- 2)+ (DF- X2)* (C1(J+ 3)- C1(J- 2))/ 10
14750 C2(J- 2)= C2(J- 2)+ (DF- X2)* (C2(J+ 3)- C2(J- 2))/ 10
14775 NEXT J
14999 REM
15000 REM  CHI-SQUARE TEST
15005 FILE "C",1
15010 PLOT 12,6,2
15020 PRINT "THE COMPUTED VALUE OF CHI-SQUARE IS";CS
15022 PRINT :PLOT 6,6
15125 PRINT "FOR"DF" DEGREES OF FREEDOM:"
15130 PRINT
15135 PLOT 6,1
15140 PRINT TAB( 5)"LEVEL";TAB( 17);"CHI-SQUARE";TAB( 40);"RESULT"
15142 PRINT
15150 FOR I= 0TO 4
15175 X$= A$:IF CS> C1(I)THEN X$= B$
15200 Y$= C$:IF CS< C2(I)THEN Y$= D$
15225 IF X$= B$THEN Y$= ""
15230 PLOT 6,2:PRINT TAB( 6);PC$(I,0);TAB( 20);
15235 PLOT 6,3:PRINT C1(I);TAB( 40);X$
15260 PLOT 6,2:PRINT TAB( 6);PC$(I,1);TAB( 20);
15275 PLOT 6,3:PRINT C2(I);TAB( 40);Y$
15300 PRINT
15325 NEXT
15350 GOTO 10000