home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / DOOG / PCSSP2.ZIP / STATNONP.ZIP / UTEST.FOR < prev    next >
Text File  |  1985-11-29  |  2KB  |  91 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE UTEST
  5. C
  6. C        PURPOSE
  7. C           TEST WHETHER TWO INDEPENDENT GROUPS ARE FROM THE SAME
  8. C           POPULATION BY MEANS OF MANN-WHITNEY U-TEST
  9. C
  10. C        USAGE
  11. C           CALL UTEST(A,R,N1,N2,U,Z,IER)
  12. C
  13. C        DESCRIPTION OF PARAMETERS
  14. C           A  - INPUT VECTOR OF CASES CONSISTING OF TWO INDEPENDENT
  15. C                GROUPS . SMALLER GROUP PRECEDES LARGER GROUP. LENGTH
  16. C                IS N1+N2.
  17. C           R  - OUTPUT VECTOR OF RANKS. SMALLEST VALUE IS RANKED 1,
  18. C                LARGEST IS RANKED N. TIES ARE ASSIGNED AVERAGE OF TIED
  19. C                RANKS. LENGTH IS N1+N2.
  20. C           N1 - NUMBER OF CASES IN SMALLER GROUP
  21. C           N2 - NUMBER OF CASES IN LARGER GROUP
  22. C           U  - STATISTIC USED TO TEST HOMOGENEITY OF THE TWO
  23. C                GROUPS (OUTPUT)
  24. C           Z  - MEASURE OF SIGNIFICANCE OF U IN TERMS OF NORMAL
  25. C                DISTRIBUTION (OUTPUT)
  26. C           IER- 0, IF NO ERROR.
  27. C              - 1, IF ALL VALUES OF ONE GROUP ARE TIED.
  28. C
  29. C        REMARKS
  30. C           Z IS SET TO ZERO IF N2 IS LESS THAN 20
  31. C
  32. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  33. C           RANK
  34. C           TIE
  35. C
  36. C        METHOD
  37. C           DESCRIBED IN S. SIEGEL, 'NONPARAMETRIC STATISTICS FOR THE
  38. C           BEHAVIORAL SCIENCES', MCGRAW-HILL, NEW YORK, 1956,
  39. C           CHAPTER 6
  40. C
  41. C     ..................................................................
  42. C
  43.       SUBROUTINE UTEST(A,R,N1,N2,U,Z)
  44.       DIMENSION A(1),R(1)
  45. C
  46. C        RANK SCORES FROM BOTH GROUP TOGETHER IN ASCENDING ORDER, AND
  47. C        ASSIGN TIED OBSERVATIONS AVERAGE OF TIED RANKS
  48. C
  49.       N=N1+N2
  50.       CALL RANK(A,R,N)
  51.       Z=0.0
  52. C
  53. C        SUM RANKS IN LARGER GROUP
  54. C
  55.       R2=0.0
  56.       NP=N1+1
  57.       DO 10 I=NP,N
  58.    10 R2=R2+R(I)
  59. C
  60. C        CALCULATE U
  61. C
  62.       FNX=N1*N2
  63.       FN=N
  64.       FN2=N2
  65.       UP=FNX+FN2*((FN2+1.0)/2.0)-R2
  66.       U=FNX-UP
  67.       IF(UP-U) 20,30,30
  68.    20 U=UP
  69. C
  70. C        TEST FOR N2 LESS THAN 20
  71. C
  72.    30 IF(N2-20) 80,40,40
  73. C
  74. C        COMPUTE STANDARD DEVIATION
  75. C
  76.    40 KT=1
  77.       CALL TIE(R,N,KT,TS)
  78.       IF(TS) 50,60,50
  79.    50 IF (TS-(FN*FN*FN-FN)/12)52,51,52
  80.    51 IER=1
  81.       GO TO 80
  82.    52 S=SQRT((FNX/(FN*(FN-1.0)))*(((FN*FN*FN-FN)/12.0)-TS))
  83.       GO TO 70
  84.    60 S=SQRT(FNX*(FN+1.0)/12.0)
  85. C
  86. C        COMPUTE Z
  87. C
  88.    70 Z=(U-FNX*0.5)/S
  89.    80 RETURN
  90.       END
  91.