如何在 python 中使用对数正态分布
您可以使用 Python 中SciPy库的lognorm()函数生成遵循对数正态分布的随机变量。
以下示例展示了如何在实践中使用此功能。
如何生成对数正态分布
您可以使用以下代码生成一个服从对数正态分布且 μ = 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 个 bin,但我们可以使用bins参数轻松增加这个数字。
例如,我们可以将 bin 数量增加到 20:
import matplotlib. pyplot as plt #create histogram plt. hist (lognorm_values, density= True , edgecolor=' black ', bins= 20 )
框的数量越多,直方图中的条形越窄。
相关:在 Matplotlib 直方图中调整 bin 大小的三种方法
其他资源
以下教程解释了如何在 Python 中使用其他概率分布: