Math-00.数学分布-21.对数正态分布

对数正态分布(Log-normal distribution)描述:取对数后服从正态分布的正值随机变量,广泛适用于右偏的浓度、酶活、基因表达量等实验数据。

段末注释:若 $Y=\log X \sim \mathcal{N}(\mu,\sigma^2)$,则 $X$ 服从对数正态;$\mu,\sigma$ 为对数尺度参数,非 $X$ 本身的均值方差。

读前说明:连续分布,下文给出 PDF。系列:01 总论 | 相关:20 正态


1. 产生背景与直观

图 1 右偏数据取对数后对称

许多生物测量值为正且长尾右偏:不能为负、少数极大值拉高均值。若乘性噪声占主导($\times$ 而非 $+$),则 $\log X$ 近似对称 → 正态。金斯顿(1930s)系统研究收入、细菌浓度等,形成 Log-normal 模型。


2. 定义与参数

$X \sim \mathrm{Lognormal}(\mu, \sigma^2)$,等价于 $\log X \sim \mathcal{N}(\mu, \sigma^2)$:

要素 内容
支撑集 $(0, +\infty)$
参数 $\mu \in \mathbb{R}$,$\sigma > 0$(对 $\log X$ 的均值与标准差)

3. PDF 与 CDF

图 2 PDF 右偏形态

3.1 PDF

$$
f(x) = \frac{1}{x\sigma\sqrt{2\pi}} \exp\left(-\frac{(\log x - \mu)^2}{2\sigma^2}\right), \quad x > 0
$$

3.2 CDF

$$
F(x) = \Phi\left(\frac{\log x - \mu}{\sigma}\right)
$$

其中 $\Phi$ 为标准正态 CDF。


4. 数字特征

公式
$\mathbb{E}[X]$ $e^{\mu + \sigma^2/2}$
$\mathrm{Var}(X)$ $(e^{\sigma^2}-1), e^{2\mu+\sigma^2}$
中位数 $e^\mu$
众数 $e^{\mu - \sigma^2}$
$\mathbb{E}[\log X]$ $\mu$
$\mathrm{Var}(\log X)$ $\sigma^2$

报告习惯:右偏数据常报告几何均值 $e^{\bar{\log x}}$ 而非算术均值。


5. 与其他分布的关系

关系 说明
正态 $\log X \sim \mathcal{N}(\mu,\sigma^2)$ → 20
指数 $\sigma$ 很大时的特例形态
Gamma / Weibull 同为正值偏态,选型靠拟合与机理
CLT 不适用 对 $X$ 直接做 t 检验常不当;应对 $\log X$ 或用工况检验

6. 前提假设

假设 含义 违背时
$X>0$ 观测值为正 含零/负值 → 平移或正态
$\log X$ 近似正态 对数变换后对称 变换无效 → 其他偏态族
乘性机制 变量为多个正因子相乘(或等价对数加性) 加性误差 → 正态
右偏单峰 浓度、表达量、收入等典型形态 多峰 → 混合对数正态

段末注释:报告均值/方差时须区分原始尺度对数尺度参数,勿混用。


7. 适用场景

图 3 适用场景

场景 示例
酶活/动力学 $k_{\mathrm{cat}}$、$K_m$ 跨数量级比较
基因表达 FPKM/TPM 正值右偏
收入/浓度 环境污染物、药物血药浓度
生存时间 与 Weibull 竞争(失效机理不同)
QC 文库浓度、粒径(部分仪器读数)

数据标准化-平方根转换、酶学 评估指标 衔接。


8. 局限与误用

图 4 局限

误用 后果
含零或负值直接 log 需偏移或换模型
对原尺度做 t 检验 偏态 + 异方差;应对 $\log$ 尺度或非参
混淆 $\mu$ 与 $\mathbb{E}[X]$ 参数解释错误
双峰数据单峰 Log-normal 应混合分布或分组
忽略检测下限 左截断需 Tobit 等

9. 参数估计与推断

9.1 MLE

对 $x_1,\ldots,x_n > 0$,令 $y_i = \log x_i$:

$$
\hat{\mu} = \bar{y}, \quad \hat{\sigma}^2 = \frac{1}{n}\sum (y_i - \bar{y})^2
$$

9.2 检验

  • 对 $\log X$ 做 t 检验
  • 两组几何均值比较:$\log$ 变换后标准流程
  • 拟合优度:K-SShapiro 对 $\log x$

10. 示例与代码

场景:8 个变体酶活(相对 WT),右偏,比较几何均值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt

activity = np.array([0.8, 1.1, 1.5, 2.3, 0.9, 3.1, 1.2, 4.5]) # 右偏
log_a = np.log(activity)
mu_hat, sigma_hat = log_a.mean(), log_a.std(ddof=1)

print(f"log-scale: mu={mu_hat:.3f}, sigma={sigma_hat:.3f}")
print(f"geometric mean = {np.exp(mu_hat):.3f}")
print(f"arithmetic mean = {activity.mean():.3f}")

# 拟合对数正态 PDF
x = np.linspace(0.01, 5, 200)
fig, axes = plt.subplots(1, 2, figsize=(12, 4))
axes[0].hist(activity, bins=6, density=True, alpha=0.6)
axes[0].plot(x, stats.lognorm.pdf(x, s=sigma_hat, scale=np.exp(mu_hat)), 'r-')
axes[0].set_title('Original scale')

axes[1].hist(log_a, bins=6, density=True, alpha=0.6)
axes[1].plot(np.linspace(-1, 2, 100), stats.norm.pdf(np.linspace(-1, 2, 100), mu_hat, sigma_hat), 'r-')
axes[1].set_title('Log scale ~ Normal')
plt.savefig('lognormal_enzyme.png', dpi=150)

# t-test on log scale vs log(1)
t, p = stats.ttest_1samp(log_a, 0.0)
print(f"t-test on log(activity) vs 0: t={t:.3f}, p={p:.4f}")

11. 小结

  • Log-normal:$X>0$,$\log X$ 正态;酶学/组学右偏数据的默认思考模型之一。
  • 推断优先在对数尺度或使用几何均值;与 20 正态 成对理解。

系列导航20 正态 | 22 指数

-------------本文结束感谢您的阅读-------------