思维之海

——在云端,寻找我的星匙。

辛普森悖论

辛普森悖论实例

悖论描述:对于 Cat 和 Human 分别而言, Treatment A 的效果(治愈率)都更好,但是在整体上(加在一起之后),Treatment B 的效果却更好。

Condition Treatment A Treatment B
Cat 100% (2/2) 75% (6/8)
Human 25% (2/8) 0% (0/2)
Total 40% (4/10) 60% (6/10)

设对应因果图如下:

因果图的含义:药效受到物种和治疗方案的影响,治疗方案又受到物种的影响。

辛普森悖论反映了数据集上的偏斜(如前表中蓝色所示)。

出现偏斜的原因,比如说可以是:Treatment A 比较昂贵,所以人类会优先给自己使用 Treatment A,而给宠物使用 Treatment B。

我们希望找到 Treatment 对 Survival 的影响(不参杂其它因素)。即上述因果图的子图:

可以通过绘制比例上下限来理解上面出现的悖论:

可以看出,混合后的全体统计量可以是 Human 和 Cat 的上下限之间的任意一个凸组合(Convex Combination),只要调大对应的采样比例。所以,如果 Treatment A 的 Human 采样比例足够大,且 Treatment B 的 Cat 采样比例足够大,则混合后 Treatment B 的治愈率可能超过 Treatment A。

解决思路-重平衡

解决辛普森悖论的思路很简单:我们必须明确,我们究竟希望考察的是哪个数据分布?然后增强或者采样出所需的数据集。

重平衡数据集如下:(调节两个 Condition 下的,即 Cat 和 Human 的试验数比例一致,50% : 50%)

Condition Treatment A Treatment B
Cat 100% (4/4) 75% (3/4)
Human 25% (1/4) 0% (0/4)
Total 62.5% (5/8) 37.5% (3/8)

此时,辛普森悖论消失了。

其次,重平衡的比例控制可以自由选取,我们可以绘制一个更清晰的比例上下限的凸组合变化图示:(越靠近两侧的其中一端,对应 Condition 所占的比例就越大)

只要 Treatment A 和 Treatment B 两者的数据分布相同,即 $\cfrac{|\text{Cat}|}{|\text{Human}|}\Big|_A = \cfrac{|\text{Cat}|}{|\text{Human}|}\Big|_B$。如下图天蓝色线所示,线条的每一个位置都是一种可能的组合方式。(其中,最优组合的选择需要一些先验知识)

辛普森悖论成立的前提

重平衡方法并不是在所有情况下都起作用的,有些情况下,试图去偏(Debiasing)的操作是不可行的。

辛普森悖论成立的前提是:Treatment 对于所有的 Condition 的作用性质是一致的,都是正向效果/负向效果。

例如,无论曝光频率情况如何,同一个情况下,只要文档的相关性越高,点击率就应该越高。

例如下图。Treatment 变量为性别,Condition 变量为院系,结果变量为录取率。对于不同院系而言,同一性别不一定都具有更高的录取率。此时,重平衡方法不再适用

对于上述问题,一种更为实际的方法是:分类讨论。即,对每一种 Condition 单独分析。

想象一个搜索的场景(Treatment 变量为是否是广告,Condition 变量为位置,结果变量为点击率)。 现在你已知位置偏差(Positional Bias)是存在的,你想要去偏。但是,作为一个搜索引擎公司,用户有一个习惯:自动过滤某一个位置的结果,比如首行、第二行。这可能是因为这一行经常被用来做广告,用户已经习惯无视。这就导致在某些情况下,排名靠前的广告,用户的点击率反而下降。这时,只能对广告和非广告分别讨论,debias 无法解决这样的问题。

内生变量无需去偏的情况

悖论描述:对于高低血压(Blood Pressure)分别而言, Treatment A 的效果(治愈率)都更好,但是在整体上(加在一起之后),Treatment B 的效果却更好。

Condition Treatment A Treatment B
Low Blood Pressure 100% (2/2) 75% (6/8)
High Blood Pressure 25% (2/8) 0% (0/2)
Total 40% (4/10) 60% (6/10)

但是其对应的因果图如下:(和之前相比,Condition 和 Treatment 交换了位置)

我们仍然希望找到 Treatment 对 Survival 的影响。此时,上述因果图的子图变为:

这是因为,Condition 变成了受到 Treatment 控制的内生变量。

此时,Condition 带来的数据偏斜问题,其本质是 Treatment 导致的。比如,药物可能使得血压降低,更低的血压进而又改善了病情。

因此,这种情况下,考察 Treatment 效果时,重平衡是不必要的。此时应该直接选取总体下的统计量,即,根据 Total = 60% 的疗效认为 Treatment B 效果更好。

常见逻辑佯谬

References