Как использовать логнормальное распределение в python
Вы можете использовать функцию lognorm() библиотеки SciPy в Python для генерации случайной величины, которая соответствует логарифмически нормальному распределению.
Следующие примеры показывают, как использовать эту функцию на практике.
Как сгенерировать логнормальное распределение
Вы можете использовать следующий код для генерации случайной величины, которая соответствует логарифмически нормальному распределению с µ = 1 и σ = 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])
Обратите внимание, что в функции lognorm.rvs() s — это стандартное отклонение, а значение в math.exp() — это среднее значение логнормального распределения, которое вы хотите сгенерировать.
В этом примере мы устанавливаем среднее значение равным 1 , а стандартное отклонение также равно 1 .
Как построить логнормальное распределение
Мы можем использовать следующий код для создания гистограммы значений логарифмически нормально распределенной случайной величины, которую мы создали в предыдущем примере:
import matplotlib. pyplot as plt #create histogram plt. hist (lognorm_values, density= True , edgecolor=' black ')
Matplotlib по умолчанию использует 10 интервалов в гистограммах, но мы можем легко увеличить это число, используя аргумент интервалов .
Например, мы можем увеличить количество бункеров до 20:
import matplotlib. pyplot as plt #create histogram plt. hist (lognorm_values, density= True , edgecolor=' black ', bins= 20 )
Чем больше ячеек, тем уже будут столбцы на гистограмме.
Связанный: Три способа настройки размера ячейки в гистограммах Matplotlib
Дополнительные ресурсы
В следующих руководствах объясняется, как использовать другие распределения вероятностей в Python:
Как использовать распределение Пуассона в Python
Как использовать экспоненциальное распределение в Python
Как использовать равномерное распределение в Python