所以我坐下来解决了这个问题。我想我会分享答案 - 我努力寻找一个解决这个问题的来源,几个赞成票表明对解决方案感兴趣。
首先,让我们设置一个场景:
1个因变量:Y
2 个变量:X1 和 X2
X1 & X2 相关
两者都有数据不存在的观察子集(为简单起见,将其称为“缺失”)
这使得存在 2 个或多个 X1 和 X2 都不存在的观测值。
有四种组合:
X1 & X2 are both avaliable
X1 is missing, X2 isn't
X2 is missing, X1 isn't
X1 and X2 are both missing
我们可以运行四个单独的回归来依次采用每个组合。这会给我们有效的估计。不包括他们有“缺失”观察的观察在任何能力上都不错,因为观察根本不包含任何信息。
但是,我们希望在一个回归中运行所有四个。为此,我们需要注意两件事:
- 我们需要能够根据上述四种组合生成四种不同的截距。
- 将“缺失”更改为 0 将调整 X1 和 X2 的系数估计值。因此,我们需要能够调节系数估计,以便它们在至少存在 X1 和 X2 之一的情况下是正确的。
如何?
为了实现上述两点,需要使用 3 个虚拟变量(分别表示为 D1、D2 和 D3)来避免不正确的系数:
- 如果 X1 缺失且 X2 不存在,则 D1 取值 1(否则为 0)
- 如果 X2 缺失且 X1 不存在,则 D2 取值 1(否则为 0)
- 如果 X1 和 X2 都没有丢失,则 D3 取值 1(否则为 0)
然后我们需要将 D1 与 X2 以及 D2 与 X1 进行交互。除了截距 X1 和 X2 之外,我们总共有 5 个额外的自变量。
D1、D2、D3 根据是否调节截距
a) X1 和 X2 没有丢失,
b) X1 和 X2 缺失,
c) X1 丢失,
d) X2 丢失
交互作用 D1*X2 和 D2*X1 调节 X1 和 X2 的系数,使得:
a) 如果 X1 缺失且 X2 缺失,则 D1*X2 调节 X2 上的系数,类似于仅在截距和 X2 上运行 Y 的回归
b) 如果 X2 缺失且 X1 缺失,则 D2*X1 调节 X1 上的系数,类似于仅在截距和 X1 上运行 Y 回归。
包含 5 个附加变量允许您在一个回归中获得所有四种组合的系数和截距估计值。
将方法扩展到 3 个或更多变量
随着具有缺失值的变量数量增加,所需的附加变量数量也增加。例如,在 3 个变量的情况下,假设所有 6 个缺失数据组合都可以存在 2 个或多个观测值(因此,例如,四个观测值缺少 X1 和 X2 但存在 X3;六个观测值缺少 X2 和 X3 但存在 X1;缺少五个观测值 X1、X2 和 X3)总共需要 11 个附加变量来创建系数和截距估计值。
很容易看出,该方法在 4 个以上变量的情况下变得更加笨拙。