Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have several test results of server response delay. According to our theory analysis, the delay distribution (The probability distribution function of response delay) should have heavy-tail behavior. But how could I prove that the test result does follow heavy-tail distribution?

share|improve this question
up vote 10 down vote accepted

I'm not sure if I'm interpreting your question correctly, so let me know, and I could adapt or delete this answer. First, we don't prove things regarding our data, we just show that something isn't unreasonable. That can be done several ways, one of which is through statistical tests. In my opinion, however, if you have a pre-specified theoretical distribution, the best approach is just to make a qq-plot. Most people think of qq-plots as only being used to assess normality, but you can plot empirical quantiles against any theoretical distribution that can be specified. If you use R, the car package has an augmented function qq.plot() with a lot of nice features; two that I like are that you can specify a number of different theoretical distributions beyond just the Gaussian (e.g., you could to t for a fatter-tailed alternative), and that it plots a 95% confidence band. If you don't have a specific theoretical distribution, but just want to see if the tails are heavier than expected from a normal, that can be seen on a qq-plot, but can sometimes be hard to recognize. One possibility that I like is to make a kernel density plot as well as a qq-plot and you could overlay a normal curve on it to boot. The basic R code is plot(density(data)). For a number, you could calculate the kurtosis, and see if it's higher than expected. I'm not aware of canned functions for kurtosis in R, you have to code it up using the equations given on the linked page, but it's not hard to do.

share|improve this answer
+1 Good advice and good discussion. But lower kurtosis? Don't you mean higher? You can experiment (in R) with library(moments); apply(matrix(1:5,5,1), 1, function(p) kurtosis((1:100)^p)): notice how the kurtosis increases as the right tail stretches out under higher powers. – whuber Mar 5 '12 at 23:56
Oops. @whuber, Thanks for the catch. I edited the answer. – gung Mar 6 '12 at 0:22
we don't prove things [...] we just show that something isn't unreasonable. Sentence to quote! – Simone Mar 6 '12 at 3:11
The e1071 package also contains a kurtosis function you can use here. – Keith Dec 25 '15 at 16:13

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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