Listing of file='STAT.BAS;01' on disk='vmedia/statistics_1-sector.ccvf'
5 REM STAT 7 REM WRITTEN BY WALTER DEGLER 2/15/79 9 REM 10 REM CENTRAL TENDANCIES, OTHER QUANTILES, DISPERSIONS, SKEW, 12 REM KURTOSIS AND OTHER STATISTICS ARE COMPUTED FOR A SET OF 14 REM GROUPED OR UNGROUPED DATA 20 REM 25 PLOT 12,14,6,2,27,24 50 DEF FN A(X)= X(I)- W+ 2* W* (X- LC)/ F(I) 75 DIM M(2),Q(2),X(149),F(149),CF(149),Z(149) 100 GOSUB 2000:REM INPUT DATA 110 FOR I= 0TO C- 1:W(I)= W(I)/ 2:NEXT 125 GOTO 4000 1999 REM 2000 REM INPUT DATA 2025 INPUT "IS DATA ALREADY GROUPED? ";Z$:Z$= LEFT$ (Z$,1) 2050 IF Z$< > "Y"AND Z$< > "N"THEN 2025 2075 IF Z$= "N"THEN 3200 2100 INPUT "DATA SOURCE (F-FILE OR K-KEYBOARD): ";Z$ 2125 IF Z$< > "F"AND Z$< > "K"THEN 2100 2150 IF Z$= "K"THEN 2650 2155 PRINT 2160 PLOT 6,1 2175 INPUT "FILE NAME, DATA TYPE #, FREQUENCY TYPE #: ";F$,T1,T2 2180 PRINT 2185 PLOT 6,2 2200 FILE "R",1,F$,4 2225 GET 1,T1,5;C 2250 FOR I= 0TO C- 1 2275 GET 1,T1,9+ 4* I;X(I) 2280 IF I= 0THEN MN= X(0):MX= X(0) 2285 IF MN> X(I)THEN MN= X(I) 2290 IF MX< X(I)THEN MX= X(I) 2300 GET 1,T2,9+ 4* I;F(I) 2310 N= N+ F(I) 2325 NEXT 2375 INPUT "ARE WIDTHS CONSTANT? ";Z$:Z$= LEFT$ (Z$,1) 2400 IF Z$< > "Y"AND Z$< > "N"THEN 2375 2425 IF Z$= "Y"THEN FILE "C",1:GOTO 3050 2450 INPUT "WIDTH TYPE # (OR '5' IF NOT IN FILE): ";T3 2500 IF T3= 5THEN FILE "C",1:GOTO 2925 2525 FOR I= 0TO C- 1 2550 GET 1,T3,9+ 4* I;W(I) 2575 NEXT 2580 FILE "C",1 2625 RETURN 2650 INPUT "NUMBER OF CLASSES? ";C 2660 PLOT 12,15,6,1 2675 PRINT "ENTER CLASS NO., CLASS MARK AND CLASS FREQUENCY:" 2680 PLOT 6,3 2700 INPUT "#";I 2710 IF I< 1THEN PRINT :PLOT 6,2:GOTO 2850 2725 PRINT SPC( 6);:PLOT 28 2750 INPUT "";X(I- 1) 2755 IF I= 1THEN MN= X(0):MX= X(0) 2760 IF MN> X(I- 1)THEN MN= X(I- 1) 2765 IF MX< X(I- 1)THEN MX= X(I- 1) 2775 PRINT SPC( 12);:PLOT 28 2800 INPUT "";F(I- 1) 2810 N= N+ F(I- 1) 2825 GOTO 2700 2850 INPUT "ARE CLASS WIDTHS CONSTANT? ";Z$:Z$= LEFT$ (Z$,1) 2875 IF Z$< > "Y"AND Z$< > "N"THEN 2850 2900 IF Z$= "Y"THEN 3050 2910 PLOT 12,15,6,1 2925 PRINT "ENTER CLASS WIDTHS (LOW CLASS TO HIGH):" 2930 PLOT 6,3 2950 FOR I= 0TO C- 1 2975 PRINT "#";I+ 1;:INPUT " ";W(I) 3000 NEXT 3010 PLOT 12,14,6,2 3025 RETURN 3050 W= (MX- MN)/ (C- 1) 3075 FOR I= 0TO C- 1 3100 W(I)= W 3125 NEXT 3150 RETURN 3200 INPUT "NUMBER OF CLASSES AND LOWEST CLASS MARK: ";C,X(0) 3225 INPUT "CLASS WIDTH (OR '0' IF NOT CONSTANT): ";W 3250 IF W> 0THEN 3970 3275 GOSUB 2910 3375 FOR I= 1TO C- 1 3400 X(I)= X(I- 1)+ .5* (W(I- 1)+ W(I)) 3425 NEXT 3450 INPUT "FILE SOURCE (F-FILE OR K-KEYBOARD): ";Z$ 3475 IF Z$< > "F"AND Z$< > "K"THEN 3450 3500 IF Z$= "F"THEN 3650 3510 PRINT 3515 PLOT 6,1 3525 INPUT "NUMBER OF VALUES: ";N 3530 PLOT 12,15,6,1 3550 PRINT :PRINT "VALUE NUMBER AND VALUE:" 3560 PLOT 6,3 3575 INPUT "#";I 3580 IF I< 1THEN PRINT :PLOT 6,2:RETURN 3600 PRINT SPC( 6);:PLOT 28:INPUT D 3625 GOSUB 3900 3630 GOTO 3575 3650 INPUT "FILE NAME AND DATA TYPE NUMBER: ";F$,T1 3675 FILE "R",1,F$,4 3700 GET 1,T1,5;N 3725 FOR I= 0TO N- 1 3750 GET 1,T1,9+ 4* I;D 3775 GOSUB 3900 3800 NEXT 3825 RETURN 3900 IF D< X(0)- W(0)/ 2THEN RETURN 3920 FOR J= 0TO C- 1 3940 IF D< X(J)+ W(J)/ 2THEN F(J)= F(J)+ 1:RETURN 3960 NEXT 3965 RETURN 3970 FOR I= 0TO C- 1 3975 W(I)= W 3980 NEXT 3985 GOTO 3375 3999 REM 4000 REM COMPUTE SUMS 4025 FOR I= 0TO C- 1 4050 X= F(I)* X(I) 4075 X1= X1+ X 4100 X5= X5+ X* X 4125 X= X* X(I) 4150 X2= X2+ X 4175 X= X* X(I) 4200 X3= X3+ X 4225 X4= X4+ X* X(I) 4250 X6= X6+ F(I)* LOG (X(I)) 4275 X7= X7+ F(I)/ X(I) 4300 NEXT 4999 REM 5000 REM COMPUTE STATISTICS 5025 AM= X1/ N 5050 GM= EXP (X6/ N) 5075 HM= N/ X7 5100 RS= SQR (X2/ N) 5125 R= X(C- 1)- X(0) 5150 M2= AM* AM 5175 V= (X2- X1* X1/ N)/ (N- 1) 5200 SD= SQR (V) 5225 CV= SD/ AM 5250 M(0)= (X2- 2* AM* X1)/ N+ M2 5275 M(1)= (X3- 3* AM* X2)/ N+ 2* AM* M2 5300 M(2)= (X4- 4* AM* X3+ 6* M2* X2)/ N- 3* M2* M2 5325 RK= M(1)/ (V* SD) 5350 KR= M(2)/ (V* V) 5375 FOR I= 0TO C- 1 5400 X8= X8+ F(I)* ABS (X(I)- AM) 5410 Z(I)= (X(I)- AM)/ SD 5425 IF I= 0THEN MF= F(I):MC= I 5450 IF MF< F(I)THEN MF= F(I):MC= I 5475 IF I= 0THEN CF(I)= F(I):GOTO 5525 5500 CF(I)= CF(I- 1)+ F(I) 5525 NEXT 5550 MD= X8/ N 5575 IF MC> 0THEN FL= F(MC- 1) 5600 IF MC< C- 1THEN FH= F(MC+ 1) 5610 IF W$= "N"THEN W= W(MC) 5625 MO= X(MC)+ W* (FH- FL)/ (2* F(MC)- FH- FL) 5650 PK= (AM- MO)/ SD 5675 FOR J= 1TO 3 5700 FOR I= 0TO C- 1 5725 IF CF(I)< J* N/ 4THEN 5775 5730 IF W$= "N"THEN W= W(I) 5740 LC= 0:IF I> 0THEN LC= CF(I- 1) 5750 Q(J- 1)= FN A(J* N/ 4):GOTO 5800 5775 NEXT I 5800 NEXT J 5825 QD= (Q(2)- Q(0))/ 2 5850 BK= (Q(2)- 2* Q(1)+ Q(0))/ (Q(2)- Q(0)) 5875 GOTO 7000 5999 REM 6000 REM DISPLAY DATA TABLE 6025 PLOT 8 6050 PRINT :PRINT 6075 PLOT 6,6 6100 PRINT " CL MARK FREQ CUM FREQ Z-SCORE" 6125 PLOT 6,3 6150 K= 0 6175 PLOT 3,0,3 6200 L= K+ 27 6225 IF L> C- 1THEN L= C- 1 6250 FOR I= KTO L 6275 PRINT I+ 1;TAB( 4);X(I);TAB( 12);F(I);TAB( 19);CF(I);TAB( 27);Z(I) 6300 NEXT 6325 K= L+ 1 6375 PLOT 6,1 6400 IF L> C- 2THEN 6475 6425 INPUT "PRESS 'RETURN' TO CONTINUE";Z$ 6450 PLOT 28,11 6475 PLOT 6,3 6500 PRINT 6525 IF K> C- 1THEN 6600 6550 PLOT 3,0,3 6575 FOR Z= 1TO 28:PRINT SPC( 36);"":NEXT 6580 GOTO 6175 6600 PLOT 6,6 6625 PRINT " TOTAL "; 6650 PLOT 6,2 6675 PRINT N 6700 PLOT 6,4 6725 PLOT 3,0,30 6750 PRINT "ENTER" 6760 INPUT "1-DATA AGAIN, 2-QUANTILES, 3-SAVE OR 4-END: ";Z 6775 IF Z= 1THEN 6125 6800 PLOT 6,2 6825 IF Z= 2THEN 9000 6830 IF Z< > 3THEN LOAD "MENU":RUN 6850 PLOT 27,4:PRINT "SAVE STAT.DSP 6000 1000":PLOT 27,27 6875 PLOT 12 6900 INPUT "ENTER 1-QUANTILES OR 2-END: ";Z 6925 IF Z= 1THEN 9000 6950 LOAD "MENU":RUN 6999 REM 7000 REM DISPLAY STATISTICS LABELS 7010 PLOT 12,6,4,15 7015 PLOT 6,3 7020 PLOT 3,22,0:PRINT "STATISTICAL ANALYSIS" 7025 X= 36 7030 PLOT 6,25 7050 PLOT 3,X+ 4,2:PRINT "CENTRAL TENDANCIES" 7060 PLOT 6,1 7075 PLOT 3,X,3:PRINT "MEANS: ARITHMETIC" 7100 PLOT 3,X+ 7,4:PRINT "GEOMETRIC" 7125 PLOT 3,X+ 7,5:PRINT "HARMONIC" 7150 PLOT 3,X,6:PRINT "MEDIAN" 7175 PLOT 3,X,7:PRINT "MODE" 7200 PLOT 3,X,8:PRINT "ROOT MEAN SQUARE" 7225 PRINT 7230 PLOT 6,25 7250 PLOT 3,X+ 7,10:PRINT "DISPERSIONS" 7260 PLOT 6,1 7275 PLOT 3,X,11:PRINT "STANDARD DEVIATION" 7300 PLOT 3,X,12:PRINT "MEAN ABS DEVIATION" 7325 PLOT 3,X,13:PRINT "QUARTILE DEVIATION" 7350 PLOT 3,X,14:PRINT "RANGE" 7375 PLOT 3,X,15:PRINT "VARIANCE" 7400 PLOT 3,X,16:PRINT "COEFF OF VARIANCE" 7425 PRINT 7430 PLOT 6,25 7450 PLOT 3,X+ 10,18:PRINT "SKEWS" 7460 PLOT 6,1 7475 PLOT 3,X,19:PRINT "STANDARD SKEW" 7500 PLOT 3,X,20:PRINT "PEARSON SKEW" 7525 PLOT 3,X,21:PRINT "BOWLEY SKEW" 7550 PRINT 7575 PLOT 3,X,23:PRINT "KURTOSIS" 7600 PRINT 7610 PLOT 6,25 7625 PLOT 3,X+ 4,25:PRINT "MOMENTS ABOUT MEAN" 7630 PLOT 6,1 7650 PLOT 3,X,26:PRINT "FIRST" 7675 PLOT 3,X,27:PRINT "SECOND" 7700 PLOT 3,X,28:PRINT "THIRD" 7725 PLOT 3,X,29:PRINT "FOURTH" 7999 REM 8000 REM DISPLAY STATISTICS VALUES 8025 X= 54 8030 PLOT 6,2 8050 PLOT 3,X,3:PRINT AM 8075 PLOT 3,X,4:PRINT GM 8100 PLOT 3,X,5:PRINT HM 8125 PLOT 3,X,6:PRINT Q(1) 8150 PLOT 3,X,7:PRINT MO 8175 PLOT 3,X,8:PRINT RS 8200 PLOT 3,X,11:PRINT SD 8225 PLOT 3,X,12:PRINT MD 8250 PLOT 3,X,13:PRINT QD 8275 PLOT 3,X,14:PRINT R 8300 PLOT 3,X,15:PRINT V 8325 PLOT 3,X,16:PRINT CV 8350 PLOT 3,X,19:PRINT RK 8375 PLOT 3,X,20:PRINT PK 8400 PLOT 3,X,21:PRINT BK 8425 PLOT 3,X,23:PRINT KR 8450 PLOT 3,X,26:PRINT 0 8475 PLOT 3,X,27:PRINT M(0) 8500 PLOT 3,X,28:PRINT M(1) 8525 PLOT 3,X,29:PRINT M(2) 8550 GOTO 6000 8999 REM 9000 REM DISPLAY QUANTILES 9010 PLOT 12,14,6,3 9025 INPUT "QUANTILE NUMBER: ";Z 9030 PLOT 12,15 9050 FOR J= 1TO Z 9055 FOR I= 0TO C- 1 9060 IF CF(I)< J* N/ ZTHEN 9225 9065 W= W(I) 9070 LC= 0:IF I> 0THEN LC= CF(I- 1) 9075 QN= FN A(J* N/ Z) 9100 X= INT ((J- 1)/ 30) 9125 PLOT 3,16* X,J- 1- 30* X 9130 PLOT 6,1 9150 PRINT J 9175 PLOT 3,16* X+ 6,J- 1- 30* X 9180 PLOT 6,3 9200 PRINT QN 9210 GOTO 9230 9225 NEXT I 9230 NEXT J 9250 PLOT 6,2 9275 PLOT 3,0,31 9300 INPUT "ENTER 1-ANOTHER QUANTILE, 2-SAVE OR 3-END: ";Z 9325 IF Z= 1THEN 9010 9330 IF Z< > 2THEN LOAD "MENU":RUN 9350 PLOT 27,4:PRINT "SAVE QUANT.DSP 6000 1000":PLOT 27,27 9375 PLOT 12 9400 INPUT "ENTER 1-ANOTHER QUANTILE OR 2-END: ";Z 9425 IF Z= 1THEN 9010 9450 LOAD "MENU":RUN