3. 拉丁超立方抽样与简单随机抽样的对比

问题设定与可复现实验框架

本节选用一个三输入的非线性工程响应模型作为对比对象,使两种抽样方法在同一输入分布下接受完全相同的统计任务。模型取

Y = 2.0 + 1.5·X1 + 0.8·X2² + 1.2·X3·X1 + 0.5·sin(2π·X3)

三个输入相互独立且均服从标准均匀分布:X1, X2, X3 ~ U(0, 1)。该模型含平方项与乘积交互项,输出分布明显右偏,因此均值、方差与高分位数对抽样覆盖质量都比较敏感,适合放大简单随机抽样(SRS)与拉丁超立方抽样(LHS)的差异。

对比指标固定为三项:输出均值估计、输出方差估计、输出 95% 分位数估计。对每个样本量 N,重复 R 次独立抽样,用各次估计值的样本方差衡量估计量本身的波动,用相对误差衡量收敛程度。参照值由大样本蒙特卡洛(N=2×10⁶)给出,仅作为示例基准。

LHS 的关键约束是分层:每个输入维度的 [0,1] 区间被等分为 N 层,每层恰好落入一个样本点,且各维度的层内顺序独立随机置换。这保证了每个输入的一维边缘分布被均匀覆盖,但不保证多维联合空间均匀覆盖,这一点在维度升高时会逐渐显现。

两种抽样方法的实现

下面给出可直接运行的 Python 实现,包含 SRS、LHS、模型求值、重复实验与统计汇总。LHS 采用“分层 + 独立置换”的标准构造,不引入额外优化。

import numpy as np

def model(X):
    x1, x2, x3 = X[:, 0], X[:, 1], X[:, 2]
    return 2.0 + 1.5*x1 + 0.8*x2**2 + 1.2*x3*x1 + 0.5*np.sin(2*np.pi*x3)

def sample_srs(n, d, rng):
    return rng.random((n, d))

def sample_lhs(n, d, rng):
    # 每维等分 n 层,层内均匀取点,再对每维独立置换层序
    cut = np.arange(n) / n
    u = cut[:, None] + rng.random((n, d)) / n
    for j in range(d):
        rng.shuffle(u[:, j])
    return u

def run_once(n, d, method, rng):
    X = sample_srs(n, d, rng) if method == "SRS" else sample_lhs(n, d, rng)
    y = model(X)
    return np.mean(y), np.var(y, ddof=1), np.quantile(y, 0.95)

def repeat_experiment(n, d, method, R, seed=2024):
    rng = np.random.default_rng(seed)
    stats = np.array([run_once(n, d, method, rng) for _ in range(R)])
    return stats  # 列:均值、方差、q95

# 参照值(示例基准,大样本 MC)
rng_ref = np.random.default_rng(7)
y_ref = model(rng_ref.random((2_000_000, 3)))
ref = np.array([y_ref.mean(), y_ref.var(ddof=1), np.quantile(y_ref, 0.95)])
print("参照值 均值/方差/q95:", ref)

实验设计取 N ∈ {16, 32, 64, 128, 256, 512},每个 N 重复 R = 200 次,两种方法使用相同随机种子序列以保证可比性。对每个 N 与每种方法,计算三项估计量的重复标准差(即估计方差的开方)与相对偏差。

结果结构与判读逻辑

下图给出该实验的核心结构:同一输入分布分别进入两条抽样通道,经同一模型映射后得到输出样本,再汇总为三项统计量,最终以“重复标准差随 N 的下降速度”作为对比判据。图中同时标出 LHS 相对 SRS 在低样本量区间的典型优势来源——一维分层覆盖。

输入分布 X1, X2, X3 独立 U(0,1) d = 3 简单随机抽样 SRS N 个点独立均匀抽取 可能出现层内聚集/空洞 拉丁超立方 LHS 每维 N 层,各层恰一点 一维边缘被强制均匀覆盖 同一响应模型 Y = 2 + 1.5X1 + 0.8X2² + 1.2X3X1 + 0.5sin(2πX3) 输出统计量 均值 E[Y] 方差 Var[Y] 分位数 q95 重复 R=200 次 取估计量标准差 对比判据 估计标准差随 N 的下降斜率 同 N 下 LHS 与 SRS 的方差比 两条通道共享同一模型与同一统计任务,差异仅来自抽样方式 LHS 的优势集中在低 N 区间;N 增大后两者均趋于参照值

示例结果与收敛判读

下表为按上述设置运行得到的示例结果(教学示例数据,非实测)。表中数值为各统计量在 R=200 次重复下的估计标准差,括号内为相对参照值的偏差百分比。

N SRS 均值标准差 LHS 均值标准差 SRS 方差标准差 LHS 方差标准差 SRS q95 标准差 LHS q95 标准差
160.1180.0410.1520.0580.1960.072
320.0830.0260.1090.0370.1410.047
640.0590.0180.0770.0250.1010.032
1280.0420.0130.0550.0180.0720.023
2560.0300.0090.0390.0130.0510.016
5120.0210.0060.0280.0090.0360.011

判读要点有三条。第一,两种方法的估计标准差都随 N 增大而下降,SRS 大致按 N-1/2 收敛,LHS 在本例低维、加性主导的模型上下降更快,同 N 下方差比约为 3~8 倍,等价于用更少样本达到相同精度。第二,LHS 的优势在 N 较小时最明显,因为分层对一维边缘的覆盖收益在样本稀疏时最突出;N 增大后两者差距的相对幅度收窄。第三,方差与 q95 的估计波动普遍大于均值,说明高阶统计量对抽样覆盖更敏感,实际工程中若关注尾部或分位数,应优先考虑 LHS 并适当增加重复次数。

LHS 的分层只保证一维边缘覆盖,不保证多维联合空间均匀。当输入维度升高、模型以交互项为主时,LHS 相对 SRS 的方差缩减会明显减弱,甚至在某些统计量上不再占优。此时应改用正交拉丁超立方或结合低差异序列,而不是无条件依赖 LHS。

可复用的对比实验检查清单

  • 两种方法必须使用同一输入分布、同一模型、同一统计量与同一重复次数,随机种子序列分开管理但实验条件对齐。
  • 参照值用远大于实验样本量的蒙特卡洛给出,并记录其自身的不确定度,避免把参照误差误判为方法差异。
  • 报告估计标准差而非单次估计值,单次结果无法区分方法优劣与随机波动。
  • 至少覆盖三个数量级的 N,才能看出收敛斜率;只比较单一 N 容易得出片面结论。
  • 对均值、方差、分位数分别判断,不同统计量的方差缩减比可能相差数倍。
  • 记录维度 d 与模型结构特征,LHS 的收益与这两者强相关,结论不可跨场景直接套用。