如何理解SNM中L的作用
在结构嵌套模型(structural nested models, SNMs)中,您给出的方程:
描述了条件平均处理效应(CATE),其中:
- (Y^a) 是潜在结果(如果接受治疗 (A = a)),
- (Y^{a=0}) 是潜在结果(如果未接受治疗,即 (A = 0)),
- (A) 是治疗变量(通常为二元,如 (a = 0) 或 (a = 1)),
- (L) 是协变量向量(可能包括混杂因子或效果修饰因子),
- (\beta_1) 和 (\boldsymbol{\beta_2}) 是待估计参数。
这个模型假设处理效应(即 (Y^a - Y^{a=0})) 依赖于治疗 (A) 和协变量 (L)。具体来说:
- 当 (a = 1) 时,CATE 为 $$\beta_1 + \boldsymbol{\beta_2} L$$,
- 当 (a = 0) 时,CATE 为 0(因为方程右边为 0)。
您的核心问题是“如何确认这里的 (L)”,即如何确定或选择协变量 (L) 以确保模型正确。这涉及两个层面:
- 选择 (L):决定哪些变量应包含在 (L) 中。
- 确认 (L) 的充分性:验证 (L) 是否已包含所有必要的混杂因子和效果修饰因子,以避免偏倚。
以下我将逐步解释如何确认 (L),基于结构嵌套模型的原理和标准实践(如 g-estimation)。结构嵌套模型依赖于无混淆假设(no unmeasured confounding),而 (L) 的选择直接关系到该假设是否成立。
1. 理解 (L) 的作用
在您的模型中,(L) 有两个潜在角色:
- 混杂因子(Confounder):影响治疗分配 (A) 和结果 (Y) 的变量。如果遗漏重要混杂因子,因果效应估计将有偏。
- 效果修饰因子(Effect Modifier):影响治疗效应大小(即 (\boldsymbol{\beta_2} a L) 项表示 (L) 修饰了处理效应)。模型显式假设 (L) 是效果修饰因子(因为与 (a) 有交互)。
因此,确认 (L) 的目标是确保:
- (L) 包含所有先验的混杂因子(以消除混杂偏倚)。
- (L) 包含所有重要的效果修饰因子(以正确建模效应异质性)。
- (L) 的指定(如线性形式)正确,无遗漏变量或错误函数形式。
2. 如何选择 (L)(基于先验知识)
选择 (L) 主要依赖领域知识和因果图,而非纯数据驱动。因为因果推断中,混杂因子的识别本质上是基于假设。
步骤:
- 构建因果图(DAG):
- 绘制一个有向无环图(DAG),表示变量间的因果关系。
- 识别所有共同影响 (A) 和 (Y) 的变量(即混杂因子)。这些必须包含在 (L) 中。
- 例如,如果研究药物效果((A))和健康结局((Y)),(L) 可能包括年龄、性别、基线健康状态等。
- 包含效果修饰因子:
- 如果某些变量(如基因型或环境因素)可能改变治疗效果,也应包含在 (L) 中(因为它们出现在交互项 (\boldsymbol{\beta_2} a L) 中)。
- 避免无关变量:
- 不要包括 (A) 的后件(如治疗后的变量),因为这会引入偏倚(如 M-偏差)。
- 避免工具变量(只影响 (A) 不影响 (Y)),因为它们可能增加方差但不减少偏倚。
- 示例:
- 如果 DAG 显示变量集 (C = {L_1, L_2}) 阻塞了 (A) 到 (Y) 的所有后门路径,则 (L = {L_1, L_2})。
- 工具如 DAGitty(dagitty.net) 可帮助可视化。
为什么先验知识优先?
- 数据无法完全测试无混淆假设(因为潜在结果不可观测)。
- 错误选择 (L)(如遗漏混杂因子)会导致参数估计偏倚。
3. 如何确认 (L) 的充分性(基于数据和模型诊断)
一旦初步选择 (L),您需要使用数据和模型诊断来验证其充分性。结构嵌套模型通常通过 g-estimation 估计参数,这提供了诊断机会。以下是确认 (L) 的步骤:
步骤 1: 使用 g-estimation 估计参数
g-estimation 的核心是:在正确参数下,去混杂的潜在结果与治疗分配 (A) 独立(条件于 (L))。
定义去混杂的潜在结果:
基于您的模型,定义:
[
H(\beta) = Y - \beta_1 A - \boldsymbol{\beta_2} A L
]
在正确参数 (\beta = (\beta_1, \boldsymbol{\beta_2})) 下,(H(\beta)) 估计了 (Y^{a=0})(未接受治疗的潜在结果)。g-estimation 过程:
- 指定一个辅助模型为 (A) 给定 (L)(如逻辑回归):
[
\text{logit}(P(A=1 \mid L)) = \alpha_0 + \boldsymbol{\alpha_1} L
]
这是倾向得分模型。 - 对候选参数 (\psi = (\psi_1, \boldsymbol{\psi_2})),计算 (H(\psi) = Y - \psi_1 A - \boldsymbol{\psi_2} A L)。
- 测试条件独立性:在给定 (L) 下,(A) 应与 (H(\psi)) 独立。这通过以下回归实现:
[
\text{模型: } g(E[A \mid L, H(\psi)]) = \gamma_0 + \boldsymbol{\gamma_1} L + \gamma_2 H(\psi)
]
其中 (g) 是链接函数(如 logit)。 - 寻找 (\psi) 使得 (\gamma_2 = 0)(即 (H(\psi)) 的系数为 0)。这通过求解估计方程(如 GEE)或网格搜索完成。
- 估计的参数 (\hat{\beta}) 是使 (\gamma_2) 最接近 0 的值。
- 指定一个辅助模型为 (A) 给定 (L)(如逻辑回归):
步骤 2: 诊断 (L) 的充分性
g-estimation 提供了诊断工具来检查 (L) 是否充分:
- 测试倾向得分模型的充分性:
- 如果 (L) 遗漏了重要混杂因子,倾向得分模型((A) 给定 (L))会错误指定。
- 诊断:检查倾向得分模型的拟合(如 Hosmer-Lemeshow 检验、残差图)。如果拟合差(如 p 值低),表明 (L) 可能遗漏变量。
- 检查条件独立性:
- 在估计的 (\hat{\beta}) 下,计算 (H(\hat{\beta}))。
- 回归 (A) 对 (L) 和 (H(\hat{\beta})),测试 (H(\hat{\beta})) 的系数是否接近 0(在 g-estimation 中,它被设为 0,但您可以检查置信区间或 p 值)。
- 如果系数显著非零(如 p < 0.05),表明 (L) 不充分(可能遗漏混杂因子)。
- 添加额外变量测试:
- 如果怀疑 (L) 遗漏变量 (Z),重新运行 g-estimation 用扩展的 (L^* = L \cup Z)。
- 比较参数估计:
- 如果 (\hat{\beta}_1) 或 (\hat{\boldsymbol{\beta}}_2) 显著变化(超出置信区间),表明 (L) 不充分,(Z) 可能是重要混杂因子。
- 示例:添加 (Z) 到倾向得分模型,重新估计并测试变化。
- 测试效果修饰:
- 您的模型假设 (L) 是效果修饰因子(通过 (\boldsymbol{\beta_2} a L) 项)。
- 诊断:测试 (\boldsymbol{\beta_2} = 0)(使用 Wald 检验或似然比检验)。
- 如果不拒绝 (\boldsymbol{\beta_2} = 0),表明 (L) 可能不是强效果修饰因子,可从模型中移除(但需谨慎,基于先验知识)。
- 函数形式诊断:
- 模型假设线性交互((\boldsymbol{\beta_2} a L))。如果 (L) 与效应非线性相关,模型可能错误。
- 诊断:添加高阶项(如 (a L^2))或样条,测试其显著性。如果显著,需扩展 (L) 的表示。
步骤 3: 敏感性和鲁棒性分析
- 敏感性分析:
- 评估未测量混杂的影响。例如:
- 假设存在未观测变量 (U),量化其如何改变估计(如使用 Rosenbaum 界限或基于参数的敏感性分析)。
- 工具:R 包
sensemakr或EValue。
- 如果估计对合理范围的 (U) 敏感,表明 (L) 可能不充分。
- 评估未测量混杂的影响。例如:
- 比较替代模型:
- 拟合不同 (L) 集的模型(如 (L) 仅含混杂因子 vs. (L) 含额外变量)。
- 使用信息准则(如 AIC/BIC)或交叉验证比较拟合,但因果模型更重参数稳定性而非预测精度。
- 双重稳健方法:
- 虽非直接用于 SNMs,但可结合倾向得分和结果模型(如逆概率加权)。如果双重稳健估计与 g-estimation 类似,增加 (L) 的可靠性。
4. 常见陷阱和建议
- 陷阱:
- 遗漏混杂因子:最大风险,导致偏倚。始终优先基于 DAG。
- 过度调整:包括中介变量(如 (A) 的后件)会引入偏倚。
- 忽略效果修饰:如果 (L) 是修饰因子但未包括在交互项,效应异质性被忽略。
- 线性假设:真实效应可能非线性,使用 EDA(探索性数据分析)检查 (L) 与 (Y) 的关系。
- 建议:
- 先验知识主导:与领域专家合作定义 (L)。
- 探索性分析:运行初步回归(如 (Y) 对 (A, L, A \times L))看交互显著性。
- 软件实现:使用 R(如
gesttools包)或 Stata(stgest)进行 g-estimation。 - 报告不确定性:始终报告置信区间和敏感性结果。
总结
确认结构嵌套模型中的 (L) 是一个迭代过程:
- 选择 (L) 基于因果图/领域知识:确保包含所有先验混杂因子和效果修饰因子。
- 通过 g-estimation 诊断:测试倾向得分模型、条件独立性、参数稳定性。
- 敏感性和替代分析:评估未测量混杂和模型形式。
如果 g-estimation 显示条件独立性成立(即 (H(\hat{\beta})) 与 (A) 独立给定 (L)),且敏感性分析稳健,则 (L) 可被视为充分。但记住:无混淆假设不可完全测试,因此先验知识始终是基础。