Como usar distribuição log-normal em python


Você pode usar a função lognorm() da biblioteca SciPy em Python para gerar uma variável aleatória que segue uma distribuição log-normal.

Os exemplos a seguir mostram como usar esta função na prática.

Como gerar uma distribuição lognormal

Você pode usar o código a seguir para gerar uma variável aleatória que segue uma distribuição log-normal com μ = 1 e σ = 1:

 import math
import numpy as np
from scipy. stats import lognorm

#make this example reproducible
n.p. random . seed ( 1 )

#generate log-normal distributed random variable with 1000 values
lognorm_values = lognorm. rvs (s= 1 , scale=math. exp ( 1 ), size= 1000 )

#view first five values
lognorm_values[:5]

array([13.79554017, 1.47438888, 1.60292205, 0.92963, 6.45856805])

Observe que na função lognorm.rvs() , s é o desvio padrão e o valor em math.exp() é a média da distribuição lognormal que você deseja gerar.

Neste exemplo, definimos a média como 1 e o desvio padrão também como 1 .

Como traçar uma distribuição lognormal

Podemos usar o código a seguir para criar um histograma dos valores da variável aleatória com distribuição log-normal que criamos no exemplo anterior:

 import matplotlib. pyplot as plt

#create histogram
plt. hist (lognorm_values, density= True , edgecolor=' black ')

O padrão do Matplotlib é 10 compartimentos em histogramas, mas podemos facilmente aumentar esse número usando o argumento bins .

Por exemplo, podemos aumentar o número de caixas para 20:

 import matplotlib. pyplot as plt

#create histogram
plt. hist (lognorm_values, density= True , edgecolor=' black ', bins= 20 ) 

distribuição lognormal em Python

Quanto maior o número de caixas, mais estreitas serão as barras no histograma.

Relacionado: Três maneiras de ajustar o tamanho do compartimento em histogramas Matplotlib

Recursos adicionais

Os tutoriais a seguir explicam como usar outras distribuições de probabilidade em Python:

Como usar a distribuição Poisson em Python
Como usar distribuição exponencial em Python
Como usar distribuição uniforme em Python

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *