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

Percentile does not work as described in API

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.2
    • Fix Version/s: None
    • Labels:
      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

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

              Dates

              • Created:
                Updated:
                Resolved: