2. 方差分解基础

要真正理解 Sobol 全局敏感性分析,不能只记住“一阶指数”“总效应指数”这些名词,而要先回到它们共同的数学母体——方差分解。Sobol 方法的核心思想其实非常朴素:如果模型输出 Y = f(X₁, X₂, …, X_d) 的总波动(方差)可以被拆成若干部分,那么“某个输入变量贡献了多少波动”就自然成为衡量其重要性的尺度。本节围绕方差、条件期望与全方差公式展开,并由此建立 Sobol 指数与方差分解之间的数学联系。

一、方差:输出不确定性的度量

设模型输出 Y 是一个随机变量(因为输入 X 是随机的),其方差定义为

Var(Y) = E[(Y − E[Y])²] = E[Y²] − (E[Y])²

方差刻画的是输出围绕均值的离散程度。在敏感性分析语境下,我们关心的不是 Y 的绝对大小,而是它的波动来源:这份波动究竟由哪些输入变量引起?方差之所以成为分解对象,是因为它具有可加性——当若干随机成分相互独立时,它们的方差可以直接相加。这正是 Sobol 分解能够成立的根基。

二、条件期望:固定部分输入后的“平均输出”

条件期望是连接输入与输出的桥梁。记 X_i 为第 i 个输入,X_~i 表示除 X_i 外的其余所有输入。固定 X_i = x_i 后,对其它变量求平均,得到

E[Y | X_i = x_i]

这是一个关于 x_i 的函数,记作 g_i(x_i)。它表示:当第 i 个输入取定某个值时,输出在其余不确定性下的平均水平。若 g_i(x_i) 随 x_i 变化剧烈,说明 X_i 对输出有显著影响;若它几乎是一条水平线,说明 X_i 单独作用很弱。这个“条件期望曲线的起伏程度”,正是后面一阶效应的直观来源。

三、全方差公式:把总方差拆成两部分

全方差公式(Law of Total Variance)是本节的关键工具:

Var(Y) = Var( E[Y | X_i] ) + E[ Var(Y | X_i) ]

它把总方差拆成两项:第一项 Var(E[Y|X_i]) 是条件期望本身的方差,反映“由 X_i 引起的输出波动”;第二项 E[Var(Y|X_i)] 是固定 X_i 后剩余方差的平均,反映“X_i 无法解释的波动”。两者之比就自然定义了一阶 Sobol 指数:

S_i = Var( E[Y | X_i] ) / Var(Y)

由于第二项非负,必有 0 ≤ S_i ≤ 1。S_i 越接近 1,说明 X_i 单独解释了输出方差的主要部分;越接近 0,说明其单独作用微弱。这就是一阶效应(主效应)的严格定义。

四、从单变量到多变量:方差分解的一般形式

把全方差公式推广到变量组合,Sobol 分解给出:

Var(Y) = Σ_i V_i + Σ_{i<j} V_ij + … + V_{1,2,…,d}

其中 V_i = Var(E[Y|X_i]),V_ij = Var(E[Y|X_i,X_j]) − V_i − V_j,依此类推。每一项对应一个变量子集的“纯交互贡献”。归一化后得到各阶 Sobol 指数 S_i、S_ij 等,且所有指数之和为 1(在输入相互独立的前提下)。这揭示了 Sobol 方法的本质:它是对输出方差的一次正交分解,每个指数都是某个变量子集所“认领”的方差份额。

五、总效应指数:把交互作用算进来

一阶指数只统计 X_i 单独贡献的方差,却漏掉了 X_i 参与的所有交互项。为此定义总效应指数:

S_Ti = 1 − Var( E[Y | X_~i] ) / Var(Y)
     = E[ Var(Y | X_~i) ] / Var(Y)

它的含义是:固定除 X_i 外的所有变量后,剩余方差(即仍由 X_i 及其交互作用引起的部分)占总方差的比例。因此 S_Ti 包含了 X_i 的主效应以及它与其它变量的全部交互效应,恒有 S_Ti ≥ S_i。两者之差 S_Ti − S_i 就是 X_i 参与的交互效应总量,是判断变量间是否存在强耦合的重要指标。

总方差 Var(Y) Var( E[Y | X_i] ) 由 X_i 引起的波动 E[ Var(Y | X_i) ] X_i 无法解释的波动 一阶指数 S_i = Var(E[Y|X_i]) / Var(Y) 总效应指数 S_Ti = E[Var(Y|X_~i)] / Var(Y) 交互效应 = S_Ti − S_i ≥ 0 差值越大,X_i 与其它变量的耦合越强 Var(Y) = Σ V_i + Σ V_ij + … + V_1…d 归一化后各阶指数之和为 1(输入相互独立时)

六、一个可手算的示例

为把公式落到具体数字上,考虑一个教学用的简化模型(以下数值为便于讲解而设定的示例,非实测结果):

Y = X₁ + 2·X₂ + X₁·X₂
X₁ ~ U(0,1), X₂ ~ U(0,1),相互独立

先算均值:E[Y] = 0.5 + 2×0.5 + 0.25 = 1.75。再算总方差,可分解为:Var(X₁)=1/12,Var(2X₂)=4/12,交互项 X₁X₂ 的方差为 E[X₁²X₂²]−E[X₁X₂]² = 1/9 − 1/16 = 7/144,且各成分独立,故 Var(Y) = 1/12 + 4/12 + 7/144 = 67/144 ≈ 0.4653。

一阶指数:S₁ = (1/12)/(67/144) = 12/67 ≈ 0.179,S₂ = (4/12)/(67/144) = 48/67 ≈ 0.716。交互指数 S₁₂ = (7/144)/(67/144) = 7/67 ≈ 0.104,三者之和为 1。总效应指数则为 S_T1 = S₁ + S₁₂ ≈ 0.284,S_T2 = S₂ + S₁₂ ≈ 0.821。

这个例子清楚展示了几个要点:X₂ 的系数更大,一阶指数更高;交互项虽小但不可忽略,它使 S_Ti 明显大于 S_i;而所有指数之和恰为 1,验证了方差分解的完备性。实际工程中模型无法解析积分,Sobol 指数需通过蒙特卡洛采样估计,但“分解—归一化—比较”的逻辑完全一致。

判断变量重要性时,建议同时看 S_i 与 S_Ti:若 S_i 高而 S_Ti 与之接近,说明该变量以主效应为主,可优先单独控制;若 S_Ti 远大于 S_i,说明其影响主要通过交互实现,单独固定它未必能显著降低输出波动。