I have a very simple model. This model uses data that are not given as continuous distributions, but are described by percentiles. What is the best way to sample these percentile bins, when the bins are of unequal size?

So, for example, to select the body weight for a given individual, I pick a random number between 0-100, then match this value to the nearest percentile. I don't interpolate or extrapolate, I just match the value I draw to the nearest bin. (Extrapolating isn't a good idea given the data.) Let's say, for body weight, the percentiles I have are 25, 50 and 75. But this gives bin sizes of 37.5 (0-37.5), 25 (37.5-62.5), and 37.5 (62.5-100). So because of the unequal bin sizes, I'm going to be sampling both the 25% and 75% bins much more than I'll be sampling the median, 50%, bin. This is the opposite of what I'd like to happen.

I could weight the bins, but that seems arbitrary. Or, instead of drawing my random number from a uniform distribution 0-100, I could draw it from a normal distribution centered at the median, but that also seems arbitrary. Or, alternatively, I'd love to be convinced that I don't actually have a problem here.

Any ideas on how I could better set this up? Thanks!

  • $\begingroup$ How many percentiles are included in your real data? I hope it's more than in your example! $\endgroup$
    – onestop
    Commented Oct 20, 2010 at 15:04
  • $\begingroup$ It depends on the factor I'm using. For body weight, I'm actually using more percentiles. But for something like dust ingestion rates, which has less observed measurements, I am using as few as four percentiles. $\endgroup$
    – Melissa
    Commented Oct 20, 2010 at 16:45

1 Answer 1


In the spirit of simplicity, while aiming to attain some realism (which is not possible without both interpolation and extrapolation), consider fitting a distribution to the percentiles and sampling from it.

For body weights we can expect a power between 1/2 and 1/3 to be normally distributed. By trial and error you can find a power that symmetrizes the percentiles (specifically, look for a $p$ for which $q_{50}^p - q_{25}^p$ is approximately equal to $q_{75}^p - q_{50}^p$). The transformed percentiles easily determine a unique Normal distribution: $q_{50}^p$ is its mean and the scaled IQR $(q_{75}^p - q_{25}^p) / 1.349$ is its standard deviation. To obtain a random body weight, draw from this normal and invert the transformation (that is, apply the $1/p$ power).

This example is offered as an illustration only, not as a general recipe. For other attributes (like age or, in another context, recurrence times of major floods) it's wise to let empirical knowledge and theory suggest an appropriate distribution to fit to the percentiles: a Normal distribution is not always appropriate, even after transforming the percentiles for symmetry. It is also wise in many situations to allow for outliers. E.g., you could "contaminate" your normal distribution by occasionally drawing from a distribution with a higher mean and SD, simulating the occasional grossly obese person.


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.