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 characteristed by a Normal distribution.
dist_lognormal(mu = 0, sigma = 1)
We recommend reading this documentation on https://pkg.mitchelloharawild.com/distributional/, where the math will render nicely.
In the following, let \(Y\) be a Normal random variable with mean
mu
= \(\mu\) and standard deviation sigma
= \(\sigma\). The
log-normal distribution \(X = exp(Y)\) is characterised by:
Support: \(R+\), the set of all real numbers greater than or equal to 0.
Mean: \(e^(\mu + \sigma^2/2\)
Variance: \((e^(\sigma^2)-1) e^(2\mu + \sigma^2\)
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):
The cumulative distribution function has the form
$$ F(x) = \Phi((\ln{x} - \mu)/\sigma) $$
Where \(Phi\) is the CDF of a standard Normal distribution, N(0,1).
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.647334 2.809561 2.645544 2.570626 2.588997 2.979417 2.846744 3.458272
#> [9] 2.911521 2.398239
#>
#> [[2]]
#> [1] 7.483997 6.761166 8.112045 8.114684 7.760536 7.330519 7.956947 7.571848
#> [9] 7.344098 6.322617
#>
#> [[3]]
#> [1] 19.71820 18.37904 21.38658 21.71946 16.94034 22.88317 18.27328 19.49396
#> [9] 19.86043 19.08899
#>
#> [[4]]
#> [1] 51.19987 60.65425 49.50082 57.84606 56.11891 56.17060 50.40977 54.04689
#> [9] 58.78795 44.94419
#>
#> [[5]]
#> [1] 141.8999 151.2622 127.9244 127.3298 140.4550 145.9837 137.0261 162.8232
#> [9] 120.1060 134.6020
#>
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)