关于解决辛普森悖论的大多数建议是,如果没有更多上下文,您无法确定聚合数据或分组数据是否最有意义。
然而,我看到的大多数例子都表明分组是一个混淆因素,最好考虑分组。
例如,在如何解决辛普森悖论中,讨论了经典的肾结石数据集,普遍认为在解释中考虑肾结石大小组并选择治疗 A 更有意义。
我正在努力寻找或想到一个应该忽略分组的好例子。
这是来自 R 的 datasauRus 包的辛普森悖论数据集的散点图,带有线性回归趋势线。
我可以很容易地想到 , 的标签,x
这将使这个数据集成为对每个组进行建模最有意义的数据集。例如,y
group
x
: 每月看电视的时间y
: 考试成绩group
: 年龄,其中 A 到 E 是 11 到 16 岁
在这种情况下,对整个数据集进行建模使其看起来看更多电视与更高的考试成绩相关。分别对每个组进行建模显示,年龄较大的孩子得分较高,但看电视越多得分越低。后一种解释对我来说听起来更合理。
我读了珍珠,朱迪亚。“实证研究的因果图”。Biometrika 82.4 (1995): 669-688。它包含一个因果图,其中建议您不应该以 Z 为条件。
如果我正确理解了这一点,如果整个数据集模型中的解释变量导致潜在/分组变量发生变化,那么聚合数据模型是“最佳”模型。
我仍在努力阐明一个合理的现实示例。
如何在散点图中标记x
、y
和以制作应忽略分组的数据集?group
这有点转移注意力,但要回答 Richard Erickson 关于分层模型的问题:
这是数据集的代码
library(datasauRus)
library(dplyr)
simpsons_paradox <- datasauRus::simpsons_paradox %>%
filter(dataset == "simpson_2") %>%
mutate(group = cut(x + y, c(0, 55, 80, 120, 145, 200), labels = LETTERS[1:5])) %>%
select(- dataset)
整个数据集的线性回归
lm(y ~ x, data = simpsons_paradox)
给出x
1.75 的系数。
包括组的线性回归
lm(y ~ x + group, data = simpsons_paradox)
给出x
-0.82 的系数。
混合效应模型
library(lme4)
lmer(y ~ x + (1 | group), data = simpsons_paradox)
也给出了x
-0.82 的系数。因此,如果您不担心置信区间或组内/组间的变化,那么仅使用简单的线性回归并没有太大的好处。
我倾向于 abalter 的解释,即“如果组足够重要,可以考虑将其包含在模型中,并且您知道该组,那么您也可以实际包含它并获得更好的预测”。