对数正态分布LogNormal
如果 ln X ∼ N ( μ , σ 2 ) \ln X \sim \mathcal{N}(\mu, \sigma^2) lnX∼N(μ,σ2),那么 X X X服从对数正态分布,它的PDF是: 1 x σ 2 π exp ( − ( ln x − μ ) 2 2 σ 2 ) \frac{1}{x \sigma \sqrt{2\pi}} \exp \left( -\frac{(\ln x - \mu)^2}{2\sigma^2} \right) xσ2π1exp(−2σ2(lnx−μ)2)
图例
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm, lognorm# 设置参数
mu = 0.0# 正态分布的均值
sigma = 0.5 # 正态分布的标准差# 生成x轴数据
x_normal = np.linspace(-3, 3, 500)# 正态分布定义域:实数范围
x_lognormal = np.linspace(0.01, 5, 500) # 对数正态定义域:x > 0# 计算PDF
pdf_normal = norm.pdf(x_normal, mu, sigma) # 正态分布PDF
pdf_lognormal = lognorm.pdf(x_lognormal, s=sigma, scale=np.exp(mu))# 对数正态PDF# 绘制图形
plt.figure(figsize=(12, 5))# 子图1:正态分布
plt.subplot(1, 2, 1)
plt.plot(x_normal, pdf_normal, 'b-', lw=2, label=f'N(μ={mu}, σ={sigma})')
plt.title('Normal Distribution PDF')
plt.xlabel('x')
plt.ylabel('Probability Density')
plt.legend()
plt.grid(True)# 子图2:对数正态分布
plt.subplot(1, 2, 2)
plt.plot(x_lognormal, pdf_lognormal, 'r-', lw=2, label=f'Log-N(μ={mu}, σ={sigma})')
plt.title('Log-Normal Distribution PDF')
plt.xlabel('x (x > 0)')
plt.ylabel('Probability Density')
plt.legend()
plt.grid(True)plt.tight_layout()
plt.show()
公式推导
关键在于理解概率密度变换(Probability Density Transformation) 的数学原理。重点解释为什么分母是 x x x而不是 ln x \ln x lnx。
核心问题
已知 ln X ∼ N ( μ , σ 2 ) \ln X \sim \mathcal{N}(\mu, \sigma^2) lnX∼N(μ,σ2),即 Y = ln X Y = \ln X Y=lnX 服从正态分布,其概率密度函数(PDF)为:
f Y ( y ) = 1 σ 2 π exp ( − ( y − μ ) 2 2 σ 2 ) , y ∈ R f_Y(y) = \frac{1}{\sigma \sqrt{2\pi}} \exp \left( -\frac{(y - \mu)^2}{2\sigma^2} \right), \quad y \in \mathbb{R} fY(y)=σ2π1exp(−2σ2(y−μ)2),y∈R
但我们需要的是 X = e Y X = e^Y X=eY的分布,即 X X X的 PDF f X ( x ) f_X(x) fX(x)。
概率密度变换的推导
从 Y Y Y到 X X X的变换是一个非线性变换( X = e Y X = e^Y X=eY ),因此需要用到变量替换定理(Change of Variables Theorem)。具体步骤如下:
- 变换关系
Y = ln X Y = \ln X Y=lnX ,即 X = e Y X = e^Y X=eY 。变换的雅可比行列式(Jacobian)为:
∣ d y d x ∣ = 1 x ( 因为 y = ln x ⟹ d y / d x = 1 / x ) \left|\frac{d y}{d x}\right|=\frac{1}{x} \quad(\text { 因为 } y=\ln x \Longrightarrow d y / d x=1 / x) dxdy =x1( 因为 y=lnx⟹dy/dx=1/x)
- PDF变换公式
对于单调变换 X = g ( Y ) X = g(Y) X=g(Y),概率密度满足:
f X ( x ) = f Y ( y ) ⋅ ∣ d y d x ∣ f_X(x) = f_Y(y) \cdot \left|\frac{dy}{dx} \right| fX(x)=fY(y)⋅ dxdy
将 y = ln x y = \ln x y=lnx和雅可比行列式代入:
f X ( x ) = f Y ( ln x ) ⋅ 1 x f_X(x) = f_Y(\ln x) \cdot \frac{1}{x} fX(x)=fY(lnx)⋅x1
- 代入正态分布PDF
将 f Y ( y ) f_Y(y) fY(y) 的表达式代入:
f X ( x ) = 1 σ 2 π exp ( − ( ln x − μ ) 2 2 σ 2 ) ⋅ 1 x f_X(x) = \frac{1}{\sigma \sqrt{2\pi}} \exp \left( -\frac{(\ln x - \mu)^2}{2\sigma^2} \right) \cdot \frac{1}{x} fX(x)=σ2π1exp(−2σ2(lnx−μ)2)⋅x1
合并后即得到对数正态分布的 PDF:
f X ( x ) = 1 x σ 2 π exp ( − ( ln x − μ ) 2 2 σ 2 ) , x > 0 f_X(x) = \frac{1}{x \sigma \sqrt{2\pi}} \exp \left( -\frac{(\ln x - \mu)^2}{2\sigma^2} \right), \quad x > 0 fX(x)=xσ2π1exp(−2σ2(lnx−μ)2),x>0
为什么分母是 x x x而不是 ln x \ln x lnx ?
关键原因:分母的 x x x来自 雅可比行列式 d y d x = 1 x \frac{dy}{dx} = \frac{1}{x} dxdy=x1,它是对数变换 Y = ln X Y = \ln X Y=lnX的导数。
如果强行改为 ln x \ln x lnx ,会破坏概率密度的积分性质(即 ∫ f X ( x ) d x = 1 \int f_X(x) dx = 1 ∫fX(x)dx=1),导致分布不合法。
物理意义: x x x是原始变量,而 ln x \ln x lnx是变换后的变量。PDF 必须反映原始变量的概率密度,因此需要乘以 1 x \frac{1}{x} x1来修正缩放比例。
验证积分是否为1
可以验证 f X ( x ) f_X(x) fX(x)的积分:
∫ 0 ∞ 1 x σ 2 π exp ( − ( ln x − μ ) 2 2 σ 2 ) d x = 1 \int_0^\infty \frac{1}{x \sigma \sqrt{2\pi}} \exp \left( -\frac{(\ln x - \mu)^2}{2\sigma^2} \right) dx = 1 ∫0∞xσ2π1exp(−2σ2(lnx−μ)2)dx=1
通过变量替换 u = ln x , d u = 1 x d x u = \ln x , du = \frac{1}{x} dx u=lnx,du=x1dx ,积分变为:
∫ − ∞ ∞ 1 σ 2 π e − ( u − μ ) 2 / 2 σ 2 d u = 1 \int_{-\infty}^\infty \frac{1}{\sigma \sqrt{2\pi}} e^{-(u - \mu)^2 / 2\sigma^2} du = 1 ∫−∞∞σ2π1e−(u−μ)2/2σ2du=1
这正是标准正态分布的积分性质。
总结
分母的 x x x是数学推导的必然结果,源于概率密度变换的雅可比行列式。它保证了 f X ( x ) f_X(x) fX(x)是一个合法的概率密度函数(积分为1)。若替换为 ln x \ln x lnx ,会破坏分布的正确性。