7.3 Distribution log-normale

La loi log-normale est utilisée pour représenter la distribution d’une variable aléatoire qui résulte de la multiplication d’un grand nombre de petits effets indépendants entre eux. C’est le cas en biologie et en chimie, par exemple, la taille d’un animal, la concentration d’une molécule en solution, la température d’un matériau, etc. Ces variables sont définies uniquement pour des valeurs nulles ou positives. Une taille et une concentration négatives ne sont pas possibles. De même pour une température en dessous du zéro absolu (attention, dans ce cas, la température doit être mesurée en Kelvin).

7.3.1 Transformée log

La distribution log-normale devient normale lorsque nous transformons la variable en son logarithme. Donc, si :

\[X \sim log{\text -}N(0, 0.5)\]

alors :

\[log(X) \sim N(0, 0.5)\]

Par facilité, on défini ses deux paramètres de manière relative à la moyenne \(\mu\) et à la variance \(\sigma^2\) qu’a la distribution normale obtenue après transformation logarithmique. Voici à quoi ressemble la densité de probabilité de cette distribution (Fig 7.4). C’est une distribution asymétrique qui démarre du quantile zéro et est asymptotique à droite en \(+\infty\).

Un exemple de distribution log-normale.

Figure 7.4: Un exemple de distribution log-normale.

7.3.2 Fonction dans R pour la log-normale

Les fonctions p/q/r/d relatives à la distribution log-normale dans R utilisent le suffixe lnorm. Le calcul de probabilités se fait à l’aide de plnorm(), les quantiles se déterminent à partir de qlnorm() et un échantillon pseudo-aléatoire se calcule en utilisant rlnorm(). Un objet distribution contenant une loi log-normale se crée à l’aide de dist_lognormal(). Ses arguments sont toujours mu = et sigma =, mais pour les fonctions p/q/r/d, les arguments correspondants sont meanlog =, et sdlog =.

lN1 <- dist_lognormal(mu = 1, sigma = 0.5) # Arguments mu =, sigma =
lN1 # Attention: lN(mu, variance) 0.5^2 = 0.25
# <distribution[1]>
# [1] lN(1, 0.25)
quantile(lN1, p = 0.95)
# [1] 6.186855
qlnorm(p = 0.95, meanlog = 1, sdlog = 0.5) # Nom des arguments meanlog= / sdlog=
# [1] 6.186855