I am looking for a distribution where the probability density decreases quickly after some point away from the mean, or in my own words a "plateau-shaped distribution".

Something in between the Gaussian and the uniform.

  • 9
    $\begingroup$ You could sum a Gaussian RV and a uniform RV. $\endgroup$
    – StrongBad
    Commented Mar 25, 2016 at 14:06
  • 3
    $\begingroup$ One sometimes hears about so-called platykurtic distributions. $\endgroup$ Commented Mar 26, 2016 at 2:10

8 Answers 8


You may be looking for distribution known under the names of generalized normal (version 1), Subbotin distribution, or exponential power distribution. It is parametrized by location $\mu$, scale $\sigma$ and shape $\beta$ with pdf

$$ \frac{\beta}{2\sigma\Gamma(1/\beta)} \exp\left[-\left(\frac{|x-\mu|}{\sigma}\right)^{\beta}\right] $$

as you can notice, for $\beta=1$ it resembles and converges to Laplace distribution, with $\beta=2$ it converges to normal, and when $\beta = \infty$ to uniform distribution.

enter image description here

If you are looking for software that has it implemented, you can check normalp library for R (Mineo and Ruggieri, 2005). What is nice about this package is that, among other things, it implements regression with generalized normally distributed errors, i.e. minimizing $L_p$ norm.

Mineo, A. M., & Ruggieri, M. (2005). A software tool for the exponential power distribution: The normalp package. Journal of Statistical Software, 12(4), 1-24.


@StrongBad's comment is a really good suggestion. The sum of a uniform RV and gaussian RV can give you exactly what you're looking for if you pick the parameters right. And it actually has a reasonably nice closed form solution.

The pdf of this variable is given by the expression:

$$\dfrac{1}{4a}\left[\mathrm{erf}\left(\dfrac{x+a}{\sigma\sqrt{2}}\right)-\mathrm{erf}\left(\dfrac{x-a}{\sigma\sqrt{2}}\right) \right]$$

$a$ is the "radius" of the zero-mean uniform RV. $\sigma$ is the standard deviation of the zero-mean gaussian RV.


  • 3
    $\begingroup$ Reference: Bhattacharjee, G. P., Pandit, S. N. N., and Mohan, R. 1963. Dimensional chains involving rectangular and normal error-distributions. Technometrics, 5, 404–406. $\endgroup$
    – Tim
    Commented Mar 26, 2016 at 11:14

There's an infinite number of "plateau-shaped" distributions.

Were you after something more specific than "in between the Gaussian and the uniform"? That's somewhat vague.

Here's one easy one: you could always stick a half-normal at each end of a uniform:

Density with uniform center and Gaussian tails

You can control the "width" of the uniform relative to the scale of the normal so you can have wider or narrower plateaus, giving a whole class of distributions, which include the Gaussian and the uniform as limiting cases.

The density is:

$\frac{h}{\sqrt{2\pi}\sigma} e^{-\frac{1}{2\sigma^2}(x-\mu+w/2)^2} \mathbb{I}_{x\leq \mu-w/2} \\ + \:\frac{h}{\sqrt{2\pi}\sigma}\quad\mathbb{I}_{\mu-w/2< x\leq \mu+w/2} \\ + \frac{h}{\sqrt{2\pi}\sigma} e^{-\frac{1}{2\sigma^2}(x-\mu-w/2)^2} \mathbb{I}_{x > \mu+w/2} $

where $h = \frac{1}{1 + w/(\sqrt{2\pi}\sigma)}$

As $\sigma \to 0$ for fixed $w$, we approach the uniform on $(\mu-w/2,\mu+w/2)$ and as $w \to 0$ for fixed $\sigma$ we approach $N(\mu,\sigma^2)$.

Here are some examples (with $\mu=0$ in each case):

Plot of various examples of this Gaussian-tailed uniform

We might perhaps call this density a "Gaussian-tailed uniform".

  • 2
    $\begingroup$ Ach! I love attending formal balls wearing a Gausian-tailed uniform! ;) $\endgroup$
    – Alexis
    Commented Jun 6, 2018 at 21:05
  • $\begingroup$ I appreciate the pun. $\endgroup$ Commented Sep 24, 2021 at 8:28

See my "Devil's tower" distribution in here [1]:

$f(x) = 0.3334$, for $|x| < 0.9399$;
$f(x) = 0.2945/x^2$, for $0.9399 \leq |x| < 2.3242$; and
$f(x) = 0$, for $2.3242 \leq |x|$.

Devil's tower density function with flat top, convex sides, cut off at extremes

The "slip-dress"distribution is even more interesting.

It is easy to construct distributions having whatever shape you want.

[1]: Westfall, P.H. (2014)
"Kurtosis as Peakedness, 1905 – 2014. R.I.P."
Am. Stat. 68(3): 191–195. doi:10.1080/00031305.2014.917055
public access pdf: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4321753/pdf/nihms-599845.pdf

  • $\begingroup$ Hi Peter -- I took the liberty of giving the function and inserting an image as well as giving a full reference. (If memory serves I think Kendall and Stuart giving the details of a similar debunking in their classic text. If I remember correctly - it has been a long while - I believe they also discuss that it's not heavy-tailedness) $\endgroup$
    – Glen_b
    Commented Jul 28, 2016 at 1:02
  • $\begingroup$ Thanks, Glen_b. I never said kurtosis measured what the tail-index numbers measure. Rather, my article proves kurtosis is, for a very broad class of distributions, nearly equal to E(Z^4 * I(|Z| > 1)). Thus, kurtosis clearly tells you nothing about the 'peak,' which is typically found in the range {Z: |Z| <1}. Rather, it is determined mostly by the tails. Call it E(Z^4 * I(|Z| > 1)) if the term "heavy-tailedness" has another meaning. $\endgroup$ Commented Aug 31, 2016 at 19:40
  • $\begingroup$ Also, @Glen_b which tail-index are you referring to? There are infinitely many. Tail crossings don't define "tailedness" properly. According to some tail crossing definitions of tail heaviness, N(0,1) is more "heavy-tailed" than .9999*U(-1,1) + .0001*U(-1000,1000), although the latter is obviously more heavy tailed, despite having finite tails. And, BTW, the latter has extremely high kurtosis, unlike N(0,1). $\endgroup$ Commented Dec 19, 2017 at 1:06
  • $\begingroup$ I can't find me saying "tail index" anywhere in my comment; I am not quite sure what you're referring to there when you say "which tail-index are you referring to". If you mean the bit about heavy-tailedness the best thing to do is check what Kendall and Stuart actually say; I believe there they actually compare the asymptotic ratio of densities for symmetric standardized variables, but it might have been survivor functions perhaps; the point was theirs, not mine $\endgroup$
    – Glen_b
    Commented Dec 19, 2017 at 5:49
  • 1
    $\begingroup$ Strange. Well, in any event, Kendall and Stuart got it wrong. Kurtosis is obviously a measure of tail weight as my theorems prove. $\endgroup$ Commented Dec 22, 2017 at 0:05

Lots of nice answers. The solution proffered here has 2 features: (i) that it has a particularly simple functional form, and (ii) that the resulting distribution necessarily produces a plateau-shaped pdf (not just as a special case). I'm not sure if this already has a name in the literature, but absent same, let us call it a Plateau distribution with pdf $f(x)$:

$$f(x) = k \frac{1}{1 + x^{2 a}} \quad \quad \text{for } x \in \mathbb{R}$$


  • parameter $a$ is a positive integer, and
  • $k$ is a constant of integration: $k = \frac{a}{\pi} \sin \left(\frac{\pi}{2 a}\right)$

Here is a plot of the pdf, for different values of parameter $a$:

enter image description here


As parameter $a$ becomes large, the density tends towards a Uniform(-1,1) distribution. The following plot also compares to a standard Normal (gray dashed):

enter image description here


Another one (EDIT: I simplified it now. EDIT2: I simplified it even further, though now the picture doesn't really reflect this exact equation):

$$f(x) = \frac{1}{3 \cdot \alpha} \cdot \log{\left( \frac{\cosh{\left(\alpha \cdot a\right)}+ \cosh{\left(\alpha \cdot x\right)}} {\cosh{\left(\alpha \cdot b\right)}+ \cosh{\left(\alpha \cdot x\right)}} \right)} $$

Clunky, I know, but here I took advantage of the fact that $\log(\cosh(x))$ approaches a line as $x$ increases.

Basically you have control over how smooth is the transition ($alpha$). If $a = 2$ and $b = 1$ I guarantee it's a valid probability density (sums to 1). If you choose other values then you'll have to renormalize it.

Here is some sample code in R:

f = function(x, a, b, alpha){
  y = log((cosh(2*alpha*pi*a)+cosh(2*alpha*pi*x))/(cosh(2*alpha*pi*b)+cosh(2*alpha*pi*x)))
  y = y/pi/alpha/6

f is our distribution. Let's plot it for a sequence of x

plot(0, type = "n", xlim = c(-5,5), ylim = c(0,0.4))
x = seq(-100,100,length.out = 10001L)

for(i in 1:10){
  y = f(x = x, a = 2, b = 1, alpha = seq(0.1,2, length.out = 10L)[i]); print(paste("integral =", round(sum(0.02*y), 3L)))
  lines(x, y, type = "l", col = rainbow(10, alpha = 0.5)[i], lwd = 4)
legend("topright", paste("alpha =", round(seq(0.1,2, length.out = 10L), 3L)), col = rainbow(10), lwd = 4)

Console output:

#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = NaN" #I suspect underflow, inspecting the plots don't show divergence at all
#[1] "integral = NaN"
#[1] "integral = NaN"

And plot:

My distribution based on log cosh

You could change a and b, approximately the start and end of the slope respectively, but then further normalization would be needed, and I didn't calculate it (that's why I'm using a = 2 and b = 1 in the plot).


If you are looking for something very simple, with a central plateau and the sides of a triangle distribution, you can for instance combine N triangle distributions, N depending on the desired ratio between the plateau and the descent. Why triangles, because their sampling functions already exist in most languages. You randomly sort from one of them.

In R that would give:

rplateau = function(n=1){
  replicate(n, switch(sample(1:3, 1), rtriangle(1, 0, 2), rtriangle(1, 1, 3), rtriangle(1, 2, 4)))
hist(rplateau(1E5), breaks=200)

enter image description here enter image description here


Here's a pretty one: the product of two logistic functions.

(1/B) * 1/(1+exp(A*(x-B))) * 1/(1+exp(-A*(x+B)))

This has the benefit of not being piecewise.

B adjusts the width and A adjusts the steepness of the drop off. Shown below are B=1:6 with A=2. Note: I haven't taken the time to figure out how to properly normalize this.

Plateau distribution


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.