跳到内容

8.2 随机实验、ITT 与干扰:分配处理不等于接受处理

新的补给提醒是否真正改善交付,不能只比较上线前后的两张报表;管理员要求先设计分配与观测过程。

新的补给提醒系统准备上线。若把历史数据随机加一列 treatment,再比较已有结果,两组差异没有实验含义:随机数并没有改变任何人的经历。真正的实验需要在处理发生前随机分配,并记录分配怎样影响后续暴露与结果。

本课目标

  • 用潜在结果定义估计目标;
  • 选择随机化单位并执行可复现分配;
  • 区分 intention-to-treat 与实际接受处理的效应;
  • 处理聚类、干扰、失访和多次查看结果。

1. 先定义处理、结果与估计量

对每个单位 $i$,记:

  • $Y_i(1)$:接受处理时的潜在结果;
  • $Y_i(0)$:不接受处理时的潜在结果。

个体处理效应 $Y_i(1)-Y_i(0)$ 无法直接观察,因为同一单位只处于一种状态。实验常估计平均处理效应:

$$ ATE=E[Y(1)-Y(0)]. $$

在随机化前写清:

  • 处理版本、强度和开始时间;
  • 主要结果、单位、测量窗口;
  • 目标总体和分析单位;
  • 主要 estimand 是分配效应还是实际接受效应;
  • 排除、失访和异常处理规则。

模糊的“看看提醒是否有效”无法指导设计与分析。

2. 随机化带来什么

若分配机制正确,处理分配与处理前潜在结果独立。处理组和对照组在重复随机化的意义上可比,因此组间结果差可估计分配处理的因果效应。

一次有限样本仍可能出现协变量不平衡。不要把每个平衡检验的 p 值当实验成败;应核查随机化实现、报告标准化差异,并对预先指定的强预测变量做精度调整。

随机化并不自动解决:错误测量、失访、串组、干扰、执行偏差和目标总体代表性。

3. 选择随机化单位

若同一队伍成员会共享提醒,按个人随机会相互影响,可按队伍或堡垒随机。随机化单位必须与干扰边界和交付方式匹配。

聚类随机实验的有效样本量主要取决于聚类数和组内相关,而不只是总人数。分析时标准误也要按随机化单位聚类。

分层/区组随机可让区域、基线风险等关键变量在两组更平衡:

python
import numpy as np
import pandas as pd

rng = np.random.default_rng(42)

def blocked_assignment(frame, block_col):
    assignments = []
    for _, block in frame.groupby(block_col, sort=True):
        ids = block.index.to_numpy().copy()
        rng.shuffle(ids)
        z = np.zeros(len(ids), dtype=int)
        z[: len(ids) // 2] = 1
        rng.shuffle(z)
        assignments.append(pd.Series(z, index=ids))
    return pd.concat(assignments).sort_index()

units["assigned_treatment"] = blocked_assignment(units, "region")

生产实验还要保存种子、候选单位快照、分层变量、分配时间和执行日志。随机分配代码应在结果产生前运行。

4. Difference in means 与回归调整

完全随机实验的基本估计量是:

$$ \hat\tau=\bar Y_{Z=1}-\bar Y_{Z=0}. $$

可以加入预处理协变量提高精度,但变量和模型最好预先指定。标准误要与随机化设计一致;聚类随机就不能使用逐行独立标准误。

同时报告效应量、置信区间和原始组均值,而不是只报告 p 值。二元结果还应根据决策需要报告风险差、风险比或 odds ratio,三者含义不同。

5. ITT:按分配分析

有人收到提醒却关闭通知,也有人在对照组看到同伴转发。按实际是否看到提醒重新分组,会破坏随机化。

**Intention-to-treat(ITT)**按原始随机分配比较,不论实际依从性。它估计“采用并提供这个方案”的政策效果,通常是主要分析。

Per-protocol 或 as-treated 比较容易受依从动机混杂。若要估计实际接受处理的效应,需要额外假设和方法;随机分配可作为工具变量,但不能跳过排除限制、独立性和弱工具诊断。

6. 干扰与溢出

标准潜在结果记号隐含一个关键条件:某人的结果不受他人分配影响,处理也没有隐藏版本。现实中提醒可能在队伍内传播,补给资源也可能在组间挤占。

可选设计包括:

  • 按可能互相影响的集群随机;
  • 两阶段随机,分别估计直接效应和覆盖率效应;
  • 设置地理或网络缓冲;
  • 明确定义处理版本并测量实际暴露。

有干扰时,“处理效应”必须说明是直接、间接、总体还是饱和度效应。

7. 失访与结果缺失

若处理使不满意的人更容易退出,完整案例比较会有偏。实验中应:

  • 对两组报告失访率与原因;
  • 尽可能从独立来源取得主要结果;
  • 保留随机分配单位进入 ITT 分析;
  • 在可信缺失假设下做加权或插补;
  • 对无法观测的差异给出界限或敏感性分析。

“两组失访率相近”也不证明失访机制相同。

8. 功效、MDE 与停止规则

样本量规划需要:基线率、最小有意义效应(MDE)、方差、显著性水平、目标功效、分配比例,以及聚类和多重比较修正。

先由决策价值确定 MDE,再计算能否检出,而不是拿现有样本反推一个方便的目标。实验运行中反复查看普通 p 值并在显著时停止,会抬高假阳性率;使用预设样本量,或采用有效的序贯设计和 alpha spending。

9. 实验分析计划

text
研究问题与 estimand
实验单位、随机化单位与分层
处理/对照版本及执行检查
主要和次要结果、观察窗口
样本量、MDE、功效与停止规则
ITT 主分析及标准误方法
不依从、失访、干扰和异常规则
多重比较修正
异质性分析与预注册状态

常见误区

  • 给历史表随机加分组列就是实验:随机化必须先于处理与结果。
  • 随机化保证本次样本完全平衡:它保证分配机制,不保证每次实现相等。
  • 按实际接受处理分析更真实:重新分组可能引入选择偏差。
  • 个人很多,聚类数少也有高功效:组内相关会显著减少有效信息。

练习

  1. 为补给提醒实验定义处理、主要结果、窗口和 ITT estimand。
  2. 比较个人随机与队伍随机的污染风险和所需标准误。
  3. 构造 20% 不依从数据,比较 ITT 与错误 as-treated 结果。
  4. 为每日查看指标的实验写出合法停止方案。

小结

随机实验的力量来自事前分配,而不是数据表上的一列标记。估计目标、随机化单位、依从性、干扰和停止规则共同决定结论能否解释为因果效应。

下一课讨论不能随机化时的识别:DAG 不是装饰图,匹配和工具变量也不会自动消除混杂。

Built with VitePress | Software Systems Atlas