Percentile does not work as described in API

XMLWordPrintableJSON

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

People

• Assignee:
Unassigned
Reporter:
Andre Herbst