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 Sep 5 '20 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 Sep 6 '20 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$ – kjetil b halvorsen Sep 6 '20 at 17:44
  • $\begingroup$ Thanks, the question was previously not clear that this is was what was sought. $\endgroup$ – Glen_b Sep 6 '20 at 22:51

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 Sep 6 '20 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 Sep 6 '20 at 18:51

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.