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. 选择随机化单位
若同一队伍成员会共享提醒,按个人随机会相互影响,可按队伍或堡垒随机。随机化单位必须与干扰边界和交付方式匹配。
聚类随机实验的有效样本量主要取决于聚类数和组内相关,而不只是总人数。分析时标准误也要按随机化单位聚类。
分层/区组随机可让区域、基线风险等关键变量在两组更平衡:
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. 实验分析计划
研究问题与 estimand
实验单位、随机化单位与分层
处理/对照版本及执行检查
主要和次要结果、观察窗口
样本量、MDE、功效与停止规则
ITT 主分析及标准误方法
不依从、失访、干扰和异常规则
多重比较修正
异质性分析与预注册状态常见误区
- 给历史表随机加分组列就是实验:随机化必须先于处理与结果。
- 随机化保证本次样本完全平衡:它保证分配机制,不保证每次实现相等。
- 按实际接受处理分析更真实:重新分组可能引入选择偏差。
- 个人很多,聚类数少也有高功效:组内相关会显著减少有效信息。
练习
- 为补给提醒实验定义处理、主要结果、窗口和 ITT estimand。
- 比较个人随机与队伍随机的污染风险和所需标准误。
- 构造 20% 不依从数据,比较 ITT 与错误 as-treated 结果。
- 为每日查看指标的实验写出合法停止方案。
小结
随机实验的力量来自事前分配,而不是数据表上的一列标记。估计目标、随机化单位、依从性、干扰和停止规则共同决定结论能否解释为因果效应。
下一课讨论不能随机化时的识别:DAG 不是装饰图,匹配和工具变量也不会自动消除混杂。