Uploaded image for project: 'Commons Math'
  1. Commons Math
  2. MATH-1453

Mann-Whitney U Test returns maximum of U1 and U2

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 3.6.1
    • 4.0
    • None
    • None

    Description

      Currently, I need to use Mann-Whitney U Test and I figured out that Apache Commons Math has it implemented. After consulting the Wiki presented in the Java Doc, it indicates that the U statistic of this test is the minimum among U1 and U2. However, when I look into Apache Commons Math MannWhitneyUTest.mannWhitneyU() method, it returns the maximum of U1 and U2. In fact, the code of this method is the following:

       

      public double mannWhitneyU(double[] x, double[] y) throws NullArgumentException, NoDataException {
        this.ensureDataConformance(x, y);
        double[] z = this.concatenateSamples(x, y);
        double[] ranks = this.naturalRanking.rank(z);
        double sumRankX = 0.0D;
      
        for(int i = 0; i < x.length; ++i) {
          sumRankX += ranks[i];
        }
      
        double U1 = sumRankX - (double)((long)x.length * (long)(x.length + 1) / 2L);
        double U2 = (double)((long)x.length * (long)y.length) - U1;
        return FastMath.max(U1, U2);
      }
      

      Also, in the Java Doc it is stated that the maximum value of U1 and U2 is returned.

       
      My question is why Apache Commons returns the maximum of those two values, whereas all other sources I found online indicate returning the minimum? If this is not wrong, then shouldn't the Java Doc be updated to include a source that justifies that the maximum U should be returned.

      Attachments

        1. 1453.diff
          3 kB
          Hasan Diwan

        Activity

          People

            amarlearning Amar Prakash Pandey
            nikos.katsip Nikos Katsipoulakis
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 20m
                20m