In May 2010 Wikipedia user Mcorazao added a sentence to the skewness article that "A zero value indicates that the values are relatively evenly distributed on both sides of the mean, typically but not necessarily implying a symmetric distribution." However, the wiki page has no actual examples of distributions which break this rule. Googling "example asymmetrical distributions with zero skewness" also gives no real examples, at least in the first 20 results.

Using the definition that the skew is calculated by $ \operatorname{E}\Big[\big(\tfrac{X-\mu}{\sigma}\big)^{\!3}\, \Big]$, and the R formula

sum((x-mean(x))^3)/(length(x) * sd(x)^3)

I can construct a small, arbitrary distribution to make the skewness low. For example, the distribution

x = c(1, 3.122, 5, 4, 1.1) 

yields a skew of $-5.64947\cdot10^{-5}$. But this is a small sample and moreover the deviation from symmetry is not large. So, is it possible to construct a larger distribution with one peak that is highly asymmetrical but still has a skewness of nearly zero?

  • 3
    $\begingroup$ Do you want the distribution to be unimodal or not? The title says so, but the text barely mentions this point. $\endgroup$ – Dilip Sarwate Mar 19 '12 at 0:29
  • $\begingroup$ @Dilip Yes, I'd find it more interesting if the distribution were unimodal, since skewness, as a central moment, doesn't really make sense otherwise. $\endgroup$ – Andy McKenzie Mar 19 '12 at 2:52

Consider discrete distributions. One that is supported on $k$ values $x_1, x_2,\ldots, x_k$ is determined by non-negative probabilities $p_1, p_2,\ldots, p_k$ subject to the conditions that (a) they sum to 1 and (b) the skewness coefficient equals 0 (which is equivalent to the third central moment being zero). That leaves $k-2$ degrees of freedom (in the equation-solving sense, not the statistical one!). We can hope to find solutions that are unimodal.

To make the search for examples easier, I sought solutions supported on a small symmetrical vector $\mathbf{x}=(-3,-2,-1,0,1,2,3)$ with a unique mode at $0$, zero mean, and zero skewness. One such solution is $(p_1, \ldots, p_7) = (1396, 3286, 9586, 47386, 8781, 3930, 1235)/75600$.

Probability function

You can see it is asymmetric.

Here's a more obviously asymmetric solution with $\mathbf{x} = (-3,-1,0,1,2)$ (which is asymmetric) and $p = (1,18, 72, 13, 4)/108$:

Probability function 2

Now it's obvious what's going on: because the mean equals $0$, the negative values contribute $(-3)^3=-27$ and $18 \times (-1)^3=-18$ to the third moment while the positive values contribute $4\times 2^3 = 32$ and $13 \times 1^3 = 13$, exactly balancing the negative contributions. We can take a symmetric distribution about $0$, such as $\mathbf{x}=(-1,0,1)$ with $\mathbf{p}=(1,4,1)/6$, and shift a little mass from $+1$ to $+2$, a little mass from $+1$ down to $-1$, and a slight amount of mass down to $-3$, keeping the mean at $0$ and the skewness at $0$ as well, while creating an asymmetry. The same approach will work to maintain zero mean and zero skewness of a continuous distribution while making it asymmetric; if we're not too aggressive with the mass shifting, it will remain unimodal.

Edit: Continuous Distributions

Because the issue keeps coming up, let's give an explicit example with continuous distributions. Peter Flom had a good idea: look at mixtures of normals. A mixture of two normals won't do: when its skewness vanishes, it will be symmetric. The next simplest case is a mixture of three normals.

Mixtures of three normals, after an appropriate choice of location and scale, depend on six real parameters and therefore should have more than enough flexibility to produce an asymmetric, zero-skewness solution. To find some, we need to know how to compute skewnesses of mixtures of normals. Among these, we will search for any that are unimodal (it is possible there are none).

Now, in general, the $r^\text{th}$ (non-central) moment of a standard normal distribution is zero when $r$ is odd and otherwise equals $2^{r/2}\Gamma\left(\frac{1-r}{2}\right)/\sqrt{\pi}$. When we rescale that standard normal distribution to have a standard deviation of $\sigma$, the $r^\text{th}$ moment is multiplied by $\sigma^r$. When we shift any distribution by $\mu$, the new $r^\text{th}$ moment can be expressed in terms of moments up to and including $r$. The moment of a mixture of distributions (that is, a weighted average of them) is the same weighted average of the individual moments. Finally, the skewness is zero exactly when the third central moment is zero, and this is readily computed in terms of the first three moments.

This gives us an algebraic attack on the problem. One solution I found is an equal mixture of three normals with parameters $(\mu, \sigma)$ equal to $(0,1)$, $(1/2,1)$, and $(0, \sqrt{127/18}) \approx (0, 2.65623)$. Its mean equals $(0 + 1/2 + 0)/3 = 1/6$. This image shows the pdf in blue and the pdf of the distribution flipped about its mean in red. That they differ shows they are both asymmetric. (The mode is approximately $0.0519216$, unequal to the mean of $1/6$.) They both have zero skewness by construction.

Continuous examples

The plots indicate these are unimodal. (You can check using Calculus to find local maxima.)

  • $\begingroup$ (+1) Very slick answer. Will this work with continuous distributions though? Wouldn't the shifting potentially create tiny little modes? I may not be thinking straight... $\endgroup$ – Macro Mar 23 '12 at 13:06
  • 1
    $\begingroup$ You're thinking quite well, Macro: we should all be so sceptical. The trick is to shift tiny amounts spread across wide ranges. A first-derivative test will enable you to check for possible modes and also provides the basis for a proof that sufficiently tiny shifts of this form will not produce new modes. $\endgroup$ – whuber Mar 23 '12 at 14:03
  • $\begingroup$ Thanks for the answer! This is similar to what I was intuitively thinking, though I couldn't put it into words well--that you have to "balance" the mass on each side of the distribution. Makes me wonder if there are stereotyped ways in which one can perform this balancing act. $\endgroup$ – Andy McKenzie Mar 23 '12 at 16:11
  • $\begingroup$ One way, Andy, is to start with a discrete solution and then convolve it with a normal distribution. In this case, the unimodality requirement will force that normal distribution to have a large standard deviation. Even so, if the convolution does not appreciably change the requisite properties (such as zero skewness), or it it changes it in predictable ways, you have a mathematical handle on the problem. In some sense my recent edit can be viewed as such an attack, although it's not strictly a convolution (because the three normals have different standard deviations). $\endgroup$ – whuber Mar 23 '12 at 16:27
  • 2
    $\begingroup$ I have checked, Andy: convolving the discrete solution with a normal distribution does not change the skewness. When you give that normal distribution a standard deviation around 0.57 or greater, the result is unimodal. Like the underlying discrete distribution, it continues to have zero mean, zero skewness, and to be asymmetric. Mixing this in with a standard normal distribution amounts to a controlled movement of mass between the standard normal and the discrete distribution: that might fulfill your request for a "stereotyped" method. $\endgroup$ – whuber Mar 23 '12 at 16:36

Here is one I found at https://www.qualitydigest.com/inside/quality-insider-article/problems-skewness-and-kurtosis-part-one.html# which I find nice and reproduced in R: an inverse Burr or Dagum distribution with shape parameters $k=0.0629$ and $c=18.1484$:

$$g(x) = ckx^{-(c+1)}[1+x^{-c}]^{-(k+1)}$$

It has mean 0.5387, standard deviation 0.2907, skewness 0.0000, and kurtosis 2.0000. The source also calls it the "elephant distribution": enter image description here

My reproduction in R was created with


# a nonsymmetric distribution with zero skewness
# see https://www.qualitydigest.com/inside/quality-insider-article/problems-skewness-and-kurtosis-part-one.html#

c <- 18.1484
k <- 0.0629

x <- seq(0,1.5,by=.0001)

elephant.density <- dinvburr(x, k, c)
plot(x,elephant.density, type="l")
polygon(c(min(x),x),c(min(elephant.density),elephant.density), col="grey")
points(0.8,0.8, pch=19, cex=2)

# "ears" created via https://www.desmos.com/calculator/cahqdxeshd
ear.x <- c(0.686, 0.501, 0.42, 0.68)
ear.y <- c(0.698, 0.315, 1.095, 0.983)

myseg(bezier(cbind(ear.x, ear.y)), type="l")

EX <- gamma(k+1/c)*gamma(1-1/c)/gamma(k) # see p6 of https://wwz.unibas.ch/uploads/tx_x4epublication/23_07.pdf
EX2 <- gamma(k+2/c)*gamma(1-2/c)/gamma(k)
EX3 <- gamma(k+3/c)*gamma(1-3/c)/gamma(k)
(skewness <- (EX3 - 3*EX*(EX2-EX^2)-EX^3)/(EX2-EX^2)^(3/2)) # zero to three digits: 0.0003756196

As this output shows, skewness is not quite zero to four digits for these parameter values. Here is a little optimizer for $k$ and $c$:

   # optimize skewness a bit further
    skewval <- 1

while (skewval > 10^(-10)){
  optskew.k <- uniroot(skewness.fun, lower = k*.95, upper = k*1.1, tol=skewval^2, c=c)
  skewval <- optskew.k$f.root
  k <- optskew.k$root

  optskew.c <- uniroot(skewness.fun, lower = c*.95, upper = c*1.1, tol=skewval^2, k=k)
  skewval <- optskew.c$f.root
  c <- optskew.c$root


> print(c)
[1] 18.89306

> print(k)
[1] 0.05975542

> print(skewval)
[1] -1.131464e-15
  • $\begingroup$ Thank you for the edit. That said, I could not reproduce the skewness of 0.0000 to four digits, obtaining 0.0001245138 instead (see next edit, in the R code). $\endgroup$ – Christoph Hanck Jun 2 '17 at 10:59
  • $\begingroup$ One can probably run a simple optimizer to find $c$ and $k$ values such that the skewness is as close to zero as possible. It should be a couple of additional lines or perhaps even one. You already have the loss function analytically computed in your last line, is there a suitable generic optimizer in R? $\endgroup$ – amoeba Jun 2 '17 at 11:17
  • $\begingroup$ Actually, 0.0003756196. 0.0001245138 was already after some initial optimization, given here by mistake. I will have a look. $\endgroup$ – Christoph Hanck Jun 2 '17 at 11:26
  • $\begingroup$ @amoeba, I tried to optimize a bit, but I make no claims of having done that in a clever way, I have little experience with optimization. $\endgroup$ – Christoph Hanck Jun 2 '17 at 11:42
  • 4
    $\begingroup$ Skewness that's zero to three digits (nearly four) was plenty to my mind; it's not like a more precise value will make it look any different. If skewness will cross zero in that vicinity and it's clear what directions to tweak the values in if more accuracy is needed, I reckon that's sufficient. But kudos for the additional effort. (It's a lovely example, by the way.) $\endgroup$ – Glen_b Jun 5 '17 at 22:42

Consider a distribution on the positive half of the real line which increases linearly from 0 to the mode and then is exponential to the right of the mode, but is continuous at the mode.

This could be called a triangular-exponential distribution (though it does often look a bit like a shark fin).

Let $\theta$ be the location of the mode and $\lambda$ be the rate parameter of the exponential.

As $\lambda\theta$ increases the distribution becomes progressively less skew. As $\lambda\theta$ increases past $\approx 6.15$ the third moment crosses from positive to negative:

Triangular-Exponential with zero skewness

Brizzi (2006)$^{[1]}$ refers to this family of distributions as the "two-face" distribution, and discusses this crossover point where the third-moment-skewness is zero. von Hippel (2005)$^{[2]}$ presents an example that's almost at that crossover point here

The thread Non-normal distributions with zero skewness and zero excess kurtosis? has some asymmetric examples, including a small discrete example and another continuous unimodal one:

Unimodal Gaussian mixture with zero skewness

Discrete unimodal distributions - or equivalently, samples - with zero skewness are quite easy to construct, of large or small size.

Here's an example, which you can treat as a sample or (by dividing the raw frequencies by 3000) as a pmf (the 'x' values are the values taken, the 'n' are the number of times that value occurs in the sample):

x:  -2   -1    0    1    2    3    4    5    6    7    8    9   10
n: 496  498  562 1434    2    1    1    1    1    1    1    1    1

A plot of the probability mass function constructed from the above

This example is built up from 3-point distributions:

x:          -2              1                  c
n:   c(c-1)(c+1)/6     c(c-1)(c+1)/3 - c       1

across various values of $c$ between 3 and 10. This parameterized (by $c$) 3-point "atom" has $\sum_i n_ix_i =0$ and $\sum_i n_ix_i^3 =0$, which in turn means that mixtures across various choices of $c$ have zero skewness. (You can't make anything smaller than a distribution across three points that has asymmetry and third central moment zero. A collection of simple pieces over only a few points, such as these make neat building blocks from which larger structures may be made.)

There are all manner of other such "atoms" one can construct, but this example uses only this one kind. To some combination of atoms such as these is added a few symmetrically placed values to fill in remaining holes and guarantee unimodality without destroying the structure of mean and third moment.

$[1]$ Brizzi, M. (2006),
"A Skewed Model Combining Triangular and Exponential Features: The Two-faced Distribution and its Statistical Properties"
Austrian Journal of Statistics, 35:4, p455–462

$[2]$ von Hippel, P. T. (2005),
"Mean, Median, and Skew: Correcting a Textbook Rule"
Journal of Statistics Education Volume 13, Number 2,

  • 3
    $\begingroup$ Could maybe call it the "Shark-fin" perhaps? $\endgroup$ – Glen_b Jun 2 '17 at 16:51
  • $\begingroup$ @Glen_b Totally Shark-fin indeed. $\endgroup$ – Alecos Papadopoulos Jun 2 '17 at 17:23

For zero skewness, we need $$ \operatorname{E}\Big[\big(\tfrac{X-\mu}{\sigma}\big)^{\!3}\, \Big] = 0 $$ or, equivalently, $$ \operatorname{E}\Big[\big(\tfrac{X-\mu}{\sigma}\big)^{\!3}\, \Big | X \leq \mu \Big] + \operatorname{E}\Big[\big(\tfrac{X-\mu}{\sigma}\big)^{\!3}\, \Big | X \gt \mu \Big] = 0. $$

Now, for given mean and variance, pick any two distributions $Y$ and $Z$ with zero mass on the right side of $\mu$ and $$ \operatorname{E}\Big[\big(\tfrac{Y-\mu}{\sigma}\big)^{\!3}\, \Big] = \operatorname{E}\Big[\big(\tfrac{Z-\mu}{\sigma}\big)^{\!3}\, \Big] $$ and define $X$ to match $Y$ if left of $\mu$ and $(\mu - Z)$ otherwise. (Don't know the exact notation for this, anyone care to help?)

The resulting distribution will be unimodal if the PDFs of $Y$ and $Z$ are increasing at the left of $\mu$ (in addition to being zero at the right of $\mu$).

  • 1
    $\begingroup$ How do you guarantee that the distribution is unimodal? $\endgroup$ – Dilip Sarwate Mar 19 '12 at 0:26
  • $\begingroup$ Thanks for pointing this out. The PDFs of $Y$ and $Z$ will have to be strictly increasing until $\mu$, and then drop to zero. $\endgroup$ – krlmlr Mar 19 '12 at 0:33
  • $\begingroup$ This is the right idea but it still needs some work, because $\sigma$ can change when combining $Y$ and $Z$. $\endgroup$ – whuber Mar 23 '12 at 2:23
  • $\begingroup$ @whuber: Damn. I knew there had to be some pitfall... :-) $\endgroup$ – krlmlr Mar 23 '12 at 8:03

The following discrete distribution is asymmetric and has null skewness: Prob(-4)=1/3, Prob(1)=1/2, Prob(5)=1/6. I found it in the paper of Doric et al., Qual Quant (2009) 43:481-493; DOI 10.1007/s11135-007-9128-9

  • $\begingroup$ +1 It checks out and it's unimodal. That's the simplest possible example. $\endgroup$ – whuber Oct 15 '19 at 15:34

Sure. Try this:

skew= function (x, na.rm = FALSE) 
    if (na.rm)    x <- x[!is.na(x)]             #remove missing values
    sum((x - mean(x))^3)/(length(x) * sd(x)^3)  #calculate skew   

x = c(rnorm(100, 1, .1), rnorm(100, 3.122, .1), rnorm(100,5, .1), rnorm(100, 4, .1), rnorm(100,1.1, .1))


(You did the hard stuff already!)

  • 1
    $\begingroup$ nice, I like it. +1 $\endgroup$ – gung - Reinstate Monica Mar 18 '12 at 18:54
  • 4
    $\begingroup$ It's not bimodal... it's horribly multi -modal. Try plotting the density; curve(0.2*(dnorm(x, 1, .1) + dnorm(x, 3.122, .1) + dnorm(x, 5, .1) + dnorm(x, 4, .1) + dnorm(x, 1.1, .1)), 0,10) $\endgroup$ – guest Mar 18 '12 at 22:00
  • 1
    $\begingroup$ Data generated in this way is certainly not unimodal. All you need to do to see that is cut and paste your code, verbatim. Indeed, a mixture of normally distributed variables will never be unimodal (unless of course, one of the mixture proportions is 1). $\endgroup$ – Macro Mar 22 '12 at 17:12
  • 8
    $\begingroup$ @Macro, that's not correct. See, for example, the abstract of Roeder 1994 (JASA) for the well-known result that "the density of two mixed normals is not bimodal unless the means are separated by at least 2 standard deviations". If they are separated by less than this, the mixture is unimodal. $\endgroup$ – guest Mar 23 '12 at 5:43
  • 1
    $\begingroup$ You're right @guest. I'd forgotten about that possibility when I made my post $\endgroup$ – Macro Mar 23 '12 at 12:26

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.