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

Percentile does not work as described in API

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.2
    • None
    • None
    • None

    Description

      example call:

      StatUtils.percentile(new double[]

      {0d, 1d}

      , 25) returns 0.0

      The API says that there is a position being computed: p*(n+1)/100 -> we have p=25 and n=2
      I would expect position 0.75 as result. Next step according to the API is: interpolation between both values at floor(0.25) and at ceil(0.25). Those values are 0d and 1d ... so lower + d * (upper - lower) should give 0d + 0.25*(1d - 0d) = 0.25

      But the above call returns 0 as result. This does not make sense to me.

      another example where I think the result is not correct:

      StatUtils.percentile(new double[]

      {0d, 1d, 1d, 1d}

      , 25) returns 0.25

      we have pos = 25*5/100 = 1.25 ... so d = 0.25
      values at position floor(1.25) and ceil(1.25) are 1d and 1d. How comes that the result is not between 1d?

      Attachments

        1. MATH-582.patch
          1 kB
          Christopher Nix

        Activity

          People

            Unassigned Unassigned
            moormaster Andre Herbst
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: