What is the expected value and expected variance of a log skew normal distribution?

In case I have the terminology wrong, I'm referring to data that is lognormal with some skew mild skew when it's log transformed so it would have params y ~ logskewnormal(loc, scale, alpha).

edit: Got a great answer from JimB, code below to reproduce the expected value of the mean!

import numpy as np
import scipy.stats as stats
from scipy.special import erf, erfc

a, mu, sig = 1.1, 3.9, 1.25
skewnorm_dist = stats.skewnorm(a=a, loc=mu, scale=sig)

exp_mu_hat = []
for _ in range(10000):
    X = skewnorm_dist.rvs(1000)
    Y = np.exp(X)
    exp_mu_hat.append( Y.mean() )
print( np.mean(exp_mu_hat) )

term1 = np.exp(mu + 0.5*(sig**2))
term2 = erf((a*sig) / (np.sqrt(2) * np.sqrt(a**2 + 1))) + 1
exp_mu = term1*term2
  • $\begingroup$ If the distribution of a random variable is skewed after you take a log transformation it wasn't lognormal to begin with $\endgroup$
    – Glen_b
    Commented Sep 5, 2020 at 3:04
  • $\begingroup$ How would you suggest parameterizing it then? You are right, it is skewed after taking a log transform, but fitting that skewed log transformed data with a skew normal distribution does lead to a data generating process that pretty closely matches my data $\endgroup$
    – J Doe
    Commented Sep 6, 2020 at 17:00
  • $\begingroup$ @Glen b: He thinks about the exp of the skew Normal distribution: web.williams.edu/Mathematics/sjmiller/public_html/342/handouts/… $\endgroup$ Commented Sep 6, 2020 at 17:44
  • $\begingroup$ Thanks, the question was previously not clear that this is was what was sought. $\endgroup$
    – Glen_b
    Commented Sep 6, 2020 at 22:51

1 Answer 1


I wonder if you mean the following:

If $X\sim N(\mu,\sigma^2)$, then $Y=e^X$ has a log normal distribution.

So if $X\sim \text{SkewNormal}(\mu,\sigma,\alpha)$, then are you really interested in $Y=e^X$?

If so and the pdf of $X$ is defined to be

$$\frac{\sqrt{\frac{2}{\pi }} e^{-\frac{(\mu -\log (x))^2}{2 \sigma ^2}} \Phi \left(\frac{\alpha (\log (x)-\mu )}{\sigma }\right)}{\sigma x}$$

then the mean and variance are

$$\mu_Y=2 e^{\mu +\frac{\sigma ^2}{2}} \left(1-\Phi \left(-\frac{\alpha \sigma }{\sqrt{\alpha ^2+1}}\right)\right)$$

$$\sigma^2_Y=2 e^{2 \mu +\sigma ^2} \left(e^{\sigma ^2} \left(1-\Phi \left(-\frac{2 \alpha \sigma }{\sqrt{\alpha ^2+1}}\right)\right)-2 \left(1-\Phi \left(-\frac{\alpha \sigma }{\sqrt{\alpha ^2+1}}\right)\right)^2\right)$$

where $\Phi(.)$ is the cdf of the standard normal distribution.

  • $\begingroup$ You're correct in your assumptions! Thanks for forwarding that bit on the error function I have yet to come across one. I just simulated it out and your formula matches up perfectly with monte carlo simulations, thank you! Adding in the Python code to my post for anyone interested in learning (only simulated the mean but they should get the point) Just curious but how did you derive these formulas? $\endgroup$
    – J Doe
    Commented Sep 6, 2020 at 17:19
  • $\begingroup$ I'll modify the answer to align with the notation I use the most: the cdf of the standard normal distribution: $\Phi()$. $\endgroup$
    – JimB
    Commented Sep 6, 2020 at 18:51

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.