34
$\begingroup$

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?

$\endgroup$
2
  • 3
    $\begingroup$ Do you want the distribution to be unimodal or not? The title says so, but the text barely mentions this point. $\endgroup$ Mar 19, 2012 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$ Mar 19, 2012 at 2:52

6 Answers 6

28
$\begingroup$

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.)

$\endgroup$
6
  • $\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, 2012 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, 2012 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$ Mar 23, 2012 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, 2012 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, 2012 at 16:36
25
+50
$\begingroup$

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

library(actuar)
library(knotR)

# 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
}

yielding

> print(c)
[1] 18.89306

> print(k)
[1] 0.05975542

> print(skewval)
[1] -1.131464e-15
$\endgroup$
8
  • $\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$ Jun 2, 2017 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, 2017 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$ Jun 2, 2017 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$ Jun 2, 2017 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, 2017 at 22:42
9
$\begingroup$

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
http://www.stat.tugraz.at/AJS/ausg064/

$[2]$ von Hippel, P. T. (2005),
"Mean, Median, and Skew: Correcting a Textbook Rule"
Journal of Statistics Education Volume 13, Number 2,
http://ww2.amstat.org/publications/jse/v13n2/vonhippel.html

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

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$).

$\endgroup$
4
  • 1
    $\begingroup$ How do you guarantee that the distribution is unimodal? $\endgroup$ Mar 19, 2012 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, 2012 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, 2012 at 2:23
  • $\begingroup$ @whuber: Damn. I knew there had to be some pitfall... :-) $\endgroup$
    – krlmlr
    Mar 23, 2012 at 8:03
2
$\begingroup$

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

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

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   
 }

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

 skew(x)
 plot(density(x))

(You did the hard stuff already!)

$\endgroup$
7
  • 1
    $\begingroup$ nice, I like it. +1 $\endgroup$ Mar 18, 2012 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, 2012 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, 2012 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, 2012 at 5:43
  • 1
    $\begingroup$ You're right @guest. I'd forgotten about that possibility when I made my post $\endgroup$
    – Macro
    Mar 23, 2012 at 12:26

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.