home *** CD-ROM | disk | FTP | other *** search
- C
- C ..................................................................
- C
- C SUBROUTINE UTEST
- C
- C PURPOSE
- C TEST WHETHER TWO INDEPENDENT GROUPS ARE FROM THE SAME
- C POPULATION BY MEANS OF MANN-WHITNEY U-TEST
- C
- C USAGE
- C CALL UTEST(A,R,N1,N2,U,Z,IER)
- C
- C DESCRIPTION OF PARAMETERS
- C A - INPUT VECTOR OF CASES CONSISTING OF TWO INDEPENDENT
- C GROUPS . SMALLER GROUP PRECEDES LARGER GROUP. LENGTH
- C IS N1+N2.
- C R - OUTPUT VECTOR OF RANKS. SMALLEST VALUE IS RANKED 1,
- C LARGEST IS RANKED N. TIES ARE ASSIGNED AVERAGE OF TIED
- C RANKS. LENGTH IS N1+N2.
- C N1 - NUMBER OF CASES IN SMALLER GROUP
- C N2 - NUMBER OF CASES IN LARGER GROUP
- C U - STATISTIC USED TO TEST HOMOGENEITY OF THE TWO
- C GROUPS (OUTPUT)
- C Z - MEASURE OF SIGNIFICANCE OF U IN TERMS OF NORMAL
- C DISTRIBUTION (OUTPUT)
- C IER- 0, IF NO ERROR.
- C - 1, IF ALL VALUES OF ONE GROUP ARE TIED.
- C
- C REMARKS
- C Z IS SET TO ZERO IF N2 IS LESS THAN 20
- C
- C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
- C RANK
- C TIE
- C
- C METHOD
- C DESCRIBED IN S. SIEGEL, 'NONPARAMETRIC STATISTICS FOR THE
- C BEHAVIORAL SCIENCES', MCGRAW-HILL, NEW YORK, 1956,
- C CHAPTER 6
- C
- C ..................................................................
- C
- SUBROUTINE UTEST(A,R,N1,N2,U,Z)
- DIMENSION A(1),R(1)
- C
- C RANK SCORES FROM BOTH GROUP TOGETHER IN ASCENDING ORDER, AND
- C ASSIGN TIED OBSERVATIONS AVERAGE OF TIED RANKS
- C
- N=N1+N2
- CALL RANK(A,R,N)
- Z=0.0
- C
- C SUM RANKS IN LARGER GROUP
- C
- R2=0.0
- NP=N1+1
- DO 10 I=NP,N
- 10 R2=R2+R(I)
- C
- C CALCULATE U
- C
- FNX=N1*N2
- FN=N
- FN2=N2
- UP=FNX+FN2*((FN2+1.0)/2.0)-R2
- U=FNX-UP
- IF(UP-U) 20,30,30
- 20 U=UP
- C
- C TEST FOR N2 LESS THAN 20
- C
- 30 IF(N2-20) 80,40,40
- C
- C COMPUTE STANDARD DEVIATION
- C
- 40 KT=1
- CALL TIE(R,N,KT,TS)
- IF(TS) 50,60,50
- 50 IF (TS-(FN*FN*FN-FN)/12)52,51,52
- 51 IER=1
- GO TO 80
- 52 S=SQRT((FNX/(FN*(FN-1.0)))*(((FN*FN*FN-FN)/12.0)-TS))
- GO TO 70
- 60 S=SQRT(FNX*(FN+1.0)/12.0)
- C
- C COMPUTE Z
- C
- 70 Z=(U-FNX*0.5)/S
- 80 RETURN
- END