1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        STAT19:   KRUSKAL-WALLIS ONE WAY ANALYSIS OF VARIANCE
4  REM
5  REM        36607 REV  A   6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
10  REM PROGRAM FOR KRUSKAL-WALLIS ONE-WAY ANALYSIS OF VARIANCE
20  REM BY LARRY ROBBINS --BABSON COLLEGE
30  T=T1=T2=T3=0
40  PRINT "TOTAL NUMBER OF OBSERVATIONS    ";
50  INPUT N
60  PRINT "NUMBER OF SAMPLES   ";
70  INPUT K
80  DIM A[50,10],B[50,10],D[75],E[75]
90  PRINT '10'10'10
100  PRINT "  YOUR ANSWER WILL TAKE A FEW MINUTES..."
110  PRINT "          PLEASE WAIT..........."
120  PRINT '10'10'10
130  MAT A=ZER[50,K]
140  MAT B=ZER[52,K]
150  MAT D=ZER[N+1]
160  MAT E=ZER[N+1]
170  FOR X1=1 TO K
180  READ C
190  FOR X2=1 TO C
200  READ A[X2,X1]
210  NEXT X2
220  NEXT X1
230  X3=0
240  FOR X2=1 TO K
250  FOR X1=1 TO 50
260  IF A[X1,X2]=0 THEN 300
270  X3=X3+1
280  D[X3]=A[X1,X2]
290  NEXT X1
300  NEXT X2
310  FOR X4=1 TO N
320  IF D[X4]>D[X4+1] THEN 350
330  NEXT X4
340  GOTO 390
350  X5=D[X4]
360  D[X4]=D[X4+1]
370  D[X4+1]=X5
380  GOTO 310
390  FOR X1=1 TO N
400  D[X1]=D[X1+1]
410  E[X1]=X1
420  NEXT X1
430  D[N+1]=E[N+1]=0
440  X7=0
450  X7=X7+1
460  IF X7 >= N THEN 580
470  IF D[X7]=D[X7+1] THEN 490
480  GOTO 450
490  X8=X7
500  X8=X8+1
510  IF D[X8]=D[X8+1] THEN 500
520  X9=(X7-1)+((((X8-X7)+1)/2)+.5)
530  FOR J=X7 TO X8
540  E[J]=X9
550  NEXT J
560  X7=X8
570  GOTO 450
580  FOR X1=1 TO K
590  FOR X2=1 TO 50
600  IF A[X2,X1]=0 THEN 660
610  FOR X3=1 TO N+1
620  IF A[X2,X1]=D[X3] THEN 640
630  NEXT X3
640  B[X2,X1]=E[X3]
650  NEXT X2
660  NEXT X1
670  FOR X1=1 TO K
680  FOR X2=1 TO 50
690  IF B[X2,X1]=0 THEN 720
700  B[51,X1]=B[51,X1]+B[X2,X1]
710  NEXT X2
720  NEXT X1
730  X=0
740  T=0
750  X=X+1
760  IF X >= N THEN 910
770  IF D[X]=D[X+1] THEN 750
780  FOR X1=1 TO K
790  FOR X2=1 TO 50
800  IF A[X2,X1]=0 THEN 830
810  IF A[X2,X1]=D[X] THEN 850
820  NEXT X2
830  NEXT X1
840  GOTO 870
850  GOTO 880
860  GOTO 820
870  IF T=1 THEN 740
880  T1=((T^3)-T)
890  T3=T3+T1
900  GOTO 740
910  IF T3=0 THEN 940
920  T2=1-((T3)/((N^3)-N))
930  GOTO 950
940  T2=1-(0/((N^3)-N))
950  B=0
960  FOR J=1 TO K
970  FOR G=1 TO 50
980  IF B[G,J]=0 THEN 1000
990  NEXT G
1000  B[50,J]=G-1
1010  NEXT J
1020  FOR J=1 TO K
1030  B=B+((B[51,J]^2)/B[50,J])
1040  NEXT J
1050  H=(12/(N*(N+1)))*(B)-(3*(N+1))
1060  H=H/T2
1070  PRINT "DO YOU WANT TO SEE THE RANKED SCORES???";
1080  DIM A$[5]
1090  INPUT A$
1100  IF A$="NO" THEN 1430
1110  PRINT '10'10'10"                               RANKED SCORES"'10'10'10
1120  Z=0
1130  FOR J=1 TO K
1140  Z=B[50,J] MAX Z
1150  NEXT J
1160  DIM C[1,20]
1170  MAT C=ZER[1,K]
1180  FOR X1=1 TO K
1190  C[1,X1]=X1
1200  NEXT X1
1210  MAT  PRINT  USING "3D.1D3X";C
1220  PRINT "----------------------------------------------------------------------"'10
1230  FOR X1=1 TO Z
1240  FOR X2=1 TO K
1250  C[1,X2]=B[X1,X2]
1260  NEXT X2
1270  MAT  PRINT  USING "3D.1D3X";C
1280  NEXT X1
1290  PRINT 
1300  PRINT "NO. OF NO'S IN COLUMN"
1310  FOR X2=1 TO K
1320  C[1,X2]=B[50,X2]
1330  NEXT X2
1340  MAT  PRINT  USING "3D.1D3X";C
1350  PRINT 
1360  PRINT "SUM OF NO'S IN COLUMN"
1370  FOR X2=1 TO K
1380  C[1,X2]=B[51,X2]
1390  NEXT X2
1400  MAT  PRINT  USING "4D.1D2X";C
1410  PRINT 
1420  PRINT 
1430  PRINT "THE VALUE OF H TO BE COMPARED TO CHI SQUARE IS";H
1440  PRINT "DEGREES OF FREEDOM ARE ";K-1
1450  END 
2000  DATA 10,2,2.8,3.3,3.2,4.4,3.6,1.9,3.3,2.8,1.1
2010  DATA 8,3.5,2.8,3.2,3.5,2.3,2.4,2,1.6
2020  DATA 10,3.3,3.6,2.6,3.1,3.2,3.3,2.9,3.4,3.2,3.2
2030  DATA 8,3.2,3.3,3.2,2.9,3.3,2.5,2.6,2.8
2040  DATA 6,2.6,2.6,2.9,2,2,2.1
2050  DATA 4,3.1,2.9,3.1,2.5
2060  DATA 6,2.6,2.2,2.2,2.5,1.2,1.2
2070  DATA 4,2.5,2.4,3,1.5
9999  END 
