For a distribution, let's say I know the scores at the 10th, 30th, 50th, 70th and 90th percentiles. I also know the interquartile range and range. Is it possible to get the exact percentile rank of a given score? I'll be using R if that makes things any easier.

As a more concrete example, I have the following information:

Lowest: 5.10, Highest: 6.00, iqr=0.12

10% <= 5.25 30% <= 5.71 50% <= 5.84 70% <= 5.95 90% <= 5.96

Let's say I want to know the percentile rank of the score 5.33. I can see that it's somewhere between 10 and 30. Is there a way to calculate this outright, or maybe somehow I can recreate (estimate) the distribution based on those percentiles and estimate it that way?

  • 1
    $\begingroup$ You can't compute it exactly from the information given - it can be any value between the two values either side that you do know, though the additional information (such as IQR) might in some cases restrict it further. If you make additional assumptions you may be able to say more. $\endgroup$
    – Glen_b
    Commented Dec 18, 2013 at 1:58

2 Answers 2


You can interpolate it using a monotone spline. R example code and results appended below.

Interpolating percentile values using monotone splines

# Input data
x <- c(5.10, 5.25, 5.71, 5.84, 5.95, 5.96, 6.00)
pct <- c(0, 10, 30, 50, 70, 90, 100)

# Calculate the monotone spline curve
f <- splinefun(x,pct, method="monoH.FC")

# Draw the monotone spline curve
curve(f(x), 5.10, 6.00, col="blue", lwd = 2, xlab="Score", ylab="Percentile")

# Draw a selected point on the spline curve
points(5.33, f(5.33), col="red", pch=16)
  • $\begingroup$ This appears to do exactly what I need, thank you. Are there any potential issues/assumptions using this method? If I'm not mistaken, this will assume that data are equally distributed between the 7 given points? $\endgroup$ Commented Dec 17, 2013 at 23:20
  • 1
    $\begingroup$ No, actually, it assumes that the data is distributed in whatever proportion, between the 7 points, that you tell it. You control the relative distribution through the input values in the $x$ and $pct$ variables. As for issues/assumptions: well, your are interpolating, which means at some level, you are filling in unknown values with an "educated guess", based on other nearby values. You'll get the best results by using input data which is as tightly spaced as possible--if your percentiles are spaced in 5% increments, that will be more accurate than an interpolation based on 20% increments. $\endgroup$
    – stachyra
    Commented Dec 18, 2013 at 1:09
  • $\begingroup$ Oops, one more thing with regard to issues/assumptions: be sure to set method="monoH.FC" in the spline function. This ensures that the spline approximation is guaranteed to be monotonically increasing, which is absolutely necessary in your case. $\endgroup$
    – stachyra
    Commented Dec 18, 2013 at 1:10

No way to know, unless you know something about the distribution. Think about the plot of the distribution function, $F$ (continuous for our sake), with range in $[0,1]$. The percentiles you know correspond to the x-values satisfying $F(5.25) = .10$, $F(5.71) = .30$, etc. But the function $F$ could do anything continuously and monotonically increasingly between those two x-values. It could be very flat near $x=5.25$, so that your percentile will be close to .30, or it could rise quickly then flatten near $x=5.71$, in which case your percentile will be close to .10. No way to know unless you know a functional family for $F$.

There are inequalities for percentiles in terms of moments of the distribution, Chebyshev-like inequalites, but those don't seem to help here.

  • $\begingroup$ I do have a fairly basic knowledge of stats/math, but it sounds like I'd have to be content with that 10-30% range as the best estimate? I thought knowing those percentiles would tell me something about the distribution. But I may be able to find something more specific about the distribution. If I knew it followed a normal distribution, say, how could that help? $\endgroup$ Commented Dec 17, 2013 at 22:32
  • $\begingroup$ A normal distribution is completely determined by two parameters, $(\mu, \sigma)$. Since you have 5 percentiles specified above, my guess is that no normal will fit preceisely those percentiles. You may try to fit a normal to the data, which is only an approximation, or use a 4-parameter distribution (Johnson, Generalized Beta, etc.) for a possibly better fit. Otherwise, just interpolate, knowing that there is no basis for choosing any monotonic interpolation scheme if you don't know about the distribution. $\endgroup$ Commented Dec 17, 2013 at 22:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.