Is the following formula right if I want to measure the standard error of the median in case of a small sample with non normal distribution (I'm using python)?


Based on some of @mary's comments I think the following is appropriate. She seems to be selecting the median because the sample is small.

If you were selecting median because it's a small sample that's not a good justification. You select median because the median is an important value. It says something different from the mean. You might also select it for some statistical calculations because it's robust against certain problems like outliers or skew. However, small sample size isn't one of those problems it's robust against. For example, when sample size gets smaller it's actually much more sensitive to skew than the mean.

  • $\begingroup$ Thanks John! Actually I chose to use the median in place of the mean for the reason you have just written. I've different samples, all of them having non gaussian distribution. There are sample containing more than 50 point, others containing less than 10 points, but for all of them I think your comment is valid, isn't it? $\endgroup$
    – mary
    May 23 '13 at 16:17
  • $\begingroup$ With so few points I'm not sure what you can say about the underlying distribution. If you're comparing samples containing less than 10 with samples containing 50 and the underlying distribution isn't symmetric a median will show an effect even if there isn't one because it will have more bias in the small sample than the large. The mean won't. $\endgroup$
    – John
    May 23 '13 at 18:54
  • $\begingroup$ In the future flesh out your questions better and ask more about what you really need to know. Say why you've done what you've done so far and describe the data that you have well. You'll get much better answers. $\endgroup$
    – John
    May 23 '13 at 18:55
  • 1
    $\begingroup$ "small sample size isn't one of those problems it's robust against" is worth a +1 on its own; the rest is a bonus $\endgroup$
    – Glen_b
    May 24 '13 at 3:59
  • $\begingroup$ As a matter of fact, Huber makes a point in his book that there is no single concept of robustness. There is robustness to outliers (and that's what the median is robust for). Another view, however, is robustness to the measurement error, and that's what the mean is robust for, as it averages these measurement errors. The median, however, is highly susceptible to measurement error fluctuations as they may affect the middle of the distribution just as badly as the tails. $\endgroup$
    – StasK
    Jun 14 '13 at 15:08

The magic number 1.253 comes from the asymptotic variance formula: $$ {\rm As. Var.}[\hat m] = \frac1{4f(m)^2 n} $$ where $m$ is the true median, and $f(m)$ is the true density at that point.

For any distribution other than the normal (and mary admits that this is doubtful in her data), you would have a different factor. Getting the median estimate $\hat m$ is not such a big deal, although you can start agonizing about the middle values for the even number of observations vs. inverting the cdf or something like that. The relevant density value can be estimated by kernel density estimators, if needed. Overall, this of course is relatively dubious as three approximations are being taken:

  1. That the asymptotic formula for variance works for the small sample;
  2. That the estimated median is close enough to the true median;
  3. That the kernel density estimator gives an accurate value.

The lower the sample size, the more dubious it gets.

  • 6
    $\begingroup$ Perhaps worth adding that the magic number is $\sqrt{\dfrac{\pi}{2}} \approx 1.253314$ $\endgroup$
    – Henry
    Feb 25 '18 at 23:27

Sokal and Rohlf give this formula in their book Biometry (page 139). Under "Comments on applicability" they write: Large samples from normal populations. Thus, I am afraid that the answer to your question is no. See also here.

One way to obtain the standard error and confidence intervals for the median in small samples with non-normal distributions would be bootstrapping. This post provides links to Python packages for bootstrapping.


@whuber pointed out that bootstrapping the median in small samples isn't very informative as the justifications of the bootstrap are asymptotic (see comments below).

  • $\begingroup$ thanks for your answer! I know that bootstrapping would be an alternative, I was just guessing if there is a way to measure the error of the median in a different way. Is the answer no also for the standard error on the MEAN (same small non gaussian sample)? $\endgroup$
    – mary
    May 23 '13 at 14:58
  • $\begingroup$ @mary For the standard error of the mean, Sokal and Rohl write that it is applicable for "[...] any population with finite variance." So the answer for the standard error of the mean seems to be yes, you can calculate it. Sidenote: There are distributions though (e.g. the Cauchy distribution) that don't have a defined variance or mean and in such cases, the SEM cannot be calculated. $\endgroup$ May 23 '13 at 15:00
  • 5
    $\begingroup$ (+1) Unfortunately, bootstrapping the median of a small sample won't be very informative, either--and is unnecessary, because it can be replaced by a simple calculation. (For any number $t$, ask yourself, what are the chances that more than half of a bootstrap sample will exceed $t$? That answer is easy to come by, and now you don't need to run any simulations to estimate it.) $\endgroup$
    – whuber
    May 23 '13 at 15:04
  • $\begingroup$ @whuber Thanks for your comment. That's good to know. I deleted the advice to bootstrap the median in small samples from my answer. $\endgroup$ May 23 '13 at 15:06
  • 1
    $\begingroup$ I wasn't trying to suggest it's bad advice: I only wanted to point out its (unavoidable) limitations. Learning much from small samples is hard. But bootstrapping small samples is doubly fraught, because there is no theoretical justification to support it (all the justification is asymptotic). $\endgroup$
    – whuber
    May 23 '13 at 15:10

Not a solution here, but perhaps helpful:

Suppose your data distribution is $p(x)$, and let $P(x) = \int_{-\infty}^x p$ be the cumulative density function. So the median of the distribution is the number m such that P(m) = 1/2.

Following this helpful page we can compute the distribution of a number $x$ being the median of $n$ samples of this distribution. I think it is $q(x) = c_n p(x) (P(x)(1-P(x)))^{(n-1)/2}$. Here $c_n$ is the appropriate constant to make this a probability distribution, and I think it is n-1 choose (n-1)/2 if n is odd (unsure on that).

Finally, you would like to know the variance of q(x), which you may be able to reason about with this formula.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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