统计学中使用 Python 的对数正态分布

2025年3月17日 | 阅读 3 分钟

scipy.stats.lognorm() 描述了对数正态连续随机变量。它是从通用方法继承的 rv_continuous 类的一个实例。它通过添加特定于该分布的细节来完成技术。

给出对数正态分布的概率密度函数为

Log Normal Distribution in Statistics Using Python

定义的对数正态分布的概率密度函数是标准化形式。我们使用 loc 和 scale 参数来移位和缩放分布。位置的移位不会使其成为非中心分布。lognorm.pdf(x, loc, scale) 等同于 lognorm.pdf(y, m) / scale,其中 y = (x - loc) / scale。Lomax 是一个特殊的 Pareto 情况,loc 值为 1.0。

Lomax 分布包含的参数

  • q: 它被称为下尾和上尾的概率
  • x:它指的是分位数
  • loc:它用于引用位置参数。此参数是可选的,其默认值为 0。
  • scale:它指的是尺度参数。此参数是可选的,其默认值为 1。
  • moments:它由不同的字母组成 ['msvk']
    • 'm': 均值
    • 'v': 方差
    • 's': 费舍尔偏度
    • 'k': 费舍尔峰度

默认值为 'mv'(平均值和方差)

  • Size: 它定义了形状或随机变量。它是一个整数数据类型的元组。这是一个可选参数。
  • 结果: 它返回对数正态连续随机变量。

Python 在 scipy.stats 库中提供了 lognorm 模块,用于查找对数正态分布。

在 Python 中导入 lognorm() 库

让我们通过 Python 中的不同程序来理解统计学中对数正态分布的概念。

程序 1:创建对数正态分布随机变量的程序

代码

输出

Random Variable : 
 <scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x000001B8B0959750>

说明

我们使用 lognorm() 函数创建了对数正态分布随机变量。首先,我们导入了 lognorm 模块,并将两个变量 x 和 y 分配了随机值。然后使用 lognorm 函数,我们创建了随机变量。

程序 2:创建对数正态连续变异及其概率分布的程序。

代码

输出

Random Variates : 
 5.464299313307819

Probability Distribution : 
 [0.02646144 0.02731563 0.02822343 0.02918999 0.03022114 0.03132348
 0.03250455 0.03377301 0.0351388  0.03661346]

说明

我们使用 lognorm.rvs() 函数创建了随机变异,并使用带有随机值的 NumPy 数组的 lognorm.pdf() 函数创建了概率分布

程序 3:图形化表示对数正态概率分布的程序。

代码

输出

Distribution : 
 [0.         0.10204082 0.20408163 0.30612245 0.40816327 0.51020408
 0.6122449  0.71428571 0.81632653 0.91836735 1.02040816 1.12244898
 1.2244898  1.32653061 1.42857143 1.53061224 1.63265306 1.73469388
 1.83673469 1.93877551 2.04081633 2.14285714 2.24489796 2.34693878
 2.44897959 2.55102041 2.65306122 2.75510204 2.85714286 2.95918367
 3.06122449 3.16326531 3.26530612 3.36734694 3.46938776 3.57142857
 3.67346939 3.7755102  3.87755102 3.97959184 4.08163265 4.18367347
 4.28571429 4.3877551  4.48979592 4.59183673 4.69387755 4.79591837
 4.89795918 5.        ]

Log Normal Distribution in Statistics Using Python

说明

我们使用 NumPy 数组打印了分布,然后使用 matplotlib 使用概率密度函数打印了对数正态分布的图。

程序 4:图形化表示对数正态概率分布函数中变化的位位参数的程序。

代码

输出

[,
 ]

Log Normal Distribution in Statistics Using Python

说明

我们创建了一个具有线性、等间隔的 NumPy 数组,然后使用概率密度函数绘制了两个不同的对数正态分布的图。