Math-09.特征预处理与变换-03.偏态与方差稳定变换

本页讲解偏态与方差稳定变换——右偏、异方差数据在建模与检验前的常用数学处理。

段末注释方差稳定变换(variance-stabilizing transformation)使 $\mathrm{Var}(Y)$ 对均值 $\mathbb{E}[Y]$ 的依赖减弱;Box-Cox 变换(Box-Cox transformation)$y^{(\lambda)} = (y^\lambda - 1)/\lambda$($\lambda \neq 0$)统一幂变换族。

系列入口00.系列规划 | 前置:Math-00/21 对数正态Math-01/08 正态性


1. 常见变换(D2–D3)

图 1 右偏 → 对称

变换 公式 强度
sqrt $f(x) = \sqrt{x}$($x \ge 0$)
log $f(x) = \log(x + c)$
Box-Cox $(x^\lambda - 1)/\lambda$ 可调 $\lambda$
Yeo-Johnson 扩展至 $x \le 0$ 含负数

$\lambda = 1$ 为恒等;$\lambda \to 0$ 趋近 log。存量对照:数据标准化-平方根转换


2. Box-Cox 与估计 $\lambda$(D3)

图 2 不同 lambda 效果

在训练集上最大化 对数似然(正态近似)选 $\lambda$:

$$
\hat{\lambda} = \arg\max_\lambda \sum_i \log p(z_i \mid \lambda)
$$

关键:$\hat{\lambda}$ 仅用 train 估计,再 apply 到 val/test(10 Pipeline)。


3. 跨领域应用(D7)

图 3 偏态变换场景

领域 变量 常用变换
RNA-seq / 表达量 counts、FPKM $\log_2(x+1)$
酶动力学 $k_{\mathrm{cat}}$、$K_m$ log
金融 成交量、市值 log
环境科学 污染物浓度 log / Box-Cox
医疗 住院天数、费用 sqrt 或 log
零售 单笔消费 log
线性回归残差 异方差 对 $y$ 或 $x$ 变换

变换后做 Pearson / t 检验 更合理。


4. 局限(D8)

图 4 局限

问题 说明
$x \le 0$ Box-Cox 需平移;用 Yeo-Johnson
解释性 log 后系数为弹性近似
逆变换偏倚 反 log 需偏差校正(Jensen)
零膨胀 单独建模零 vs 正值

6. 代码示例(D12)

1
2
3
4
5
6
import numpy as np
from scipy import stats

x = np.abs(np.random.lognormal(0, 1, 500)) + 0.01
x_bc, lam = stats.boxcox(x)
print(f"lambda_hat = {lam:.3f}, skew before={stats.skew(x):.2f}, after={stats.skew(x_bc):.2f}")

7. 小结

sqrt < log < Box-Cox 压缩右尾强度递增。下一篇:04 类别编码

系列导航02 标准化 | 05 缺失值

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