The log-normal distribution is a commonly used transformation of the Normal distribution. If \(X\) follows a log-normal distribution, then \(\ln{X}\) would be characterised by a Normal distribution.
dist_lognormal(mu = 0, sigma = 1)We recommend reading this documentation on pkgdown which renders math nicely. https://pkg.mitchelloharawild.com/distributional/reference/dist_lognormal.html
In the following, let \(X\) be a log-normal random variable with
mu = \(\mu\) and sigma = \(\sigma\).
Support: \(R^+\), the set of positive real numbers.
Mean: \(e^{\mu + \sigma^2/2}\)
Variance: \((e^{\sigma^2} - 1) e^{2\mu + \sigma^2}\)
Skewness: \((e^{\sigma^2} + 2) \sqrt{e^{\sigma^2} - 1}\)
Excess Kurtosis: \(e^{4\sigma^2} + 2 e^{3\sigma^2} + 3 e^{2\sigma^2} - 6\)
Probability density function (p.d.f):
$$ f(x) = \frac{1}{x\sqrt{2 \pi \sigma^2}} e^{-(\ln{x} - \mu)^2 / (2 \sigma^2)} $$
Cumulative distribution function (c.d.f):
$$ F(x) = \Phi\left(\frac{\ln{x} - \mu}{\sigma}\right) $$
where \(\Phi\) is the c.d.f. of the standard Normal distribution.
Moment generating function (m.g.f):
Does not exist in closed form.
dist <- dist_lognormal(mu = 1:5, sigma = 0.1)
dist
#> <distribution[5]>
#> [1] lN(1, 0.01) lN(2, 0.01) lN(3, 0.01) lN(4, 0.01) lN(5, 0.01)
mean(dist)
#> [1] 2.731907 7.426094 20.186216 54.871824 149.157083
variance(dist)
#> [1] 0.07500759 0.55423526 4.09527545 30.26022006 223.59446360
skewness(dist)
#> [1] 0.3017591 0.3017591 0.3017591 0.3017591 0.3017591
kurtosis(dist)
#> [1] 0.1623239 0.1623239 0.1623239 0.1623239 0.1623239
generate(dist, 10)
#> [[1]]
#> [1] 2.523026 3.185334 2.623249 2.336593 3.163115 2.957748 2.812014 2.857574
#> [9] 2.967740 2.501851
#>
#> [[2]]
#> [1] 7.714561 6.520180 7.911587 6.821428 7.691566 7.368538 6.481991 6.884629
#> [9] 6.380601 7.327090
#>
#> [[3]]
#> [1] 20.20272 17.43808 19.62992 21.45865 18.21947 18.73593 17.66775 17.62386
#> [9] 17.27313 20.47291
#>
#> [[4]]
#> [1] 64.17745 53.56600 54.38803 57.75457 58.22572 56.28621 52.47087 56.66443
#> [9] 60.11114 58.61740
#>
#> [[5]]
#> [1] 132.3500 134.5337 135.3525 147.4294 130.0745 139.9781 144.4944 151.9971
#> [9] 143.7874 130.4571
#>
density(dist, 2)
#> [1] 1.799910e-02 1.637111e-37 5.539330e-116 6.972494e-238 0.000000e+00
density(dist, 2, log = TRUE)
#> [1] -4.017433 -84.702715 -265.387997 -546.073279 -926.758561
cdf(dist, 4)
#> [1] 9.999440e-01 4.203228e-10 7.003186e-59 6.915322e-151 2.970982e-286
quantile(dist, 0.7)
#> [1] 2.864632 7.786878 21.166930 57.537681 156.403632
# A log-normal distribution X is exp(Y), where Y is a Normal distribution of
# the same parameters. So log(X) will produce the Normal distribution Y.
log(dist)
#> <distribution[5]>
#> [1] N(1, 0.01) N(2, 0.01) N(3, 0.01) N(4, 0.01) N(5, 0.01)