缺少根本不存在的数据

机器算法验证 数据集 缺失数据
2022-04-01 12:49:46

我已经阅读了单个变量中 80% 的缺失数据,并了解了处理 1 个变量根本不存在的缺失数据的方法。

我试图将其概括为最多 2 个或更多变量,其中样本的不同子集将具有不同的变量集,其中可以存在数据。为简单起见,我从 2 个变量开始,其中有四个总体子集:

  1. 两个变量都可以存在的子集
  2. 第一个变量可以存在的子集
  3. 第二个变量可以存在的子集
  4. 两个变量都不存在的子集

我的第一个想法是简单地创建:

a) 一个虚拟变量,用于判断变量 1 是否缺失

b) 变量 2 是否缺失的一个虚拟变量

在纸面上,这似乎是有道理的:我为四个子集获得了四个不同的截距。但是,我担心当我为 2 个变量的缺失值估算值为 0 时会发生什么。更具体地说,它将调整两个变量之间的相关性,从而调整参数估计。

有没有办法克服这个问题,或者我只需要对涉及 2 个或更多变量且缺失数据根本不存在的场景运行单独的回归?

2个回答

对于资料来源,我建议Benjamin M. Merlin (Thesis) 的机器学习中的缺失数据问题,或 Roderick 和 Rubin 的 Statistical Analysis with Missing Data。您在答案中解释的内容类似于增强模型。

有多种方法可以处理丢失的数据,快速浏览一下,最容易实现的方法是

  • 多重均值插补:如果数据是M issing A t R andom,即数据丢失对因变量没有影响,除了您不知道变量值的事实之外,这有效。这个想法是将变量的平均值分配给缺失值,并添加一个随机误差以避免分布中出现大的峰值。多次这样做以获得不同的训练集,并对模型进行平均。在这种情况下工作的另一种技术是矩阵重建。
  • 简化模型:如果数据不是M issing A t R andom 会遇到平均插补的麻烦。简化模型的想法是对不同模式的训练数据使用多个模型。在您的情况下,您将训练四个模型,请注意,在训练时,您可以使用来自[x1,x2],[x1,?],[?,x2],[?,?][?,x2][x1,x2]图案。是否应该测试结果模型的问题。如果不包括其他模式并且因变量依赖于模式,则不包括其他数据将改善结果。如果自变量基于它们的值缺失,但因变量不依赖于“缺失”,包括更多数据应该会改善结果。
  • 增强模型:这是您最终选择实现的模型:将未知值设置为变量补充模型以表示特征的缺失。这适用于某些模型,例如线性回归,其中具有特殊含义。使用树或 SVM 可能效果较差,但使用 NeuralNets 仍应有效。这提供了一种补偿不同模式类型的截距的方法。这在您的情况下应该很好用,但是当很多特征缺少值,并且有很多相似的模式时,两个模式可能需要以不同的方式补偿,并且可能需要一些额外的工作来正确识别模式相似的。0[0,1]0

所以我坐下来解决了这个问题。我想我会分享答案 - 我努力寻找一个解决这个问题的来源,几个赞成票表明对解决方案感兴趣。

首先,让我们设置一个场景:

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

我们可以运行四个单独的回归来依次采用每个组合。这会给我们有效的估计。不包括他们有“缺失”观察的观察在任何能力上都不错,因为观察根本不包含任何信息。

但是,我们希望在一个回归中运行所有四个。为此,我们需要注意两件事:

  1. 我们需要能够根据上述四种组合生成四种不同的截距。
  2. 将“缺失”更改为 0 将调整 X1 和 X2 的系数估计值。因此,我们需要能够调节系数估计,以便它们在至少存在 X1 和 X2 之一的情况下是正确的。

如何?

为了实现上述两点,需要使用 3 个虚拟变量(分别表示为 D1、D2 和 D3)来避免不正确的系数:

  1. 如果 X1 缺失且 X2 不存在,则 D1 取值 1(否则为 0)
  2. 如果 X2 缺失且 X1 不存在,则 D2 取值 1(否则为 0)
  3. 如果 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 调节 X​​1 和 X2 的系数,使得:

a) 如果 X1 缺失且 X2 缺失,则 D1*X2 调节 X​​2 上的系数,类似于仅在截距和 X2 上运行 Y 的回归

b) 如果 X2 缺失且 X1 缺失,则 D2*X1 调节 X​​1 上的系数,类似于仅在截距和 X1 上运行 Y 回归。

包含 5 个附加变量允许您在一个回归中获得所有四种组合的系数和截距估计值。

将方法扩展到 3 个或更多变量

随着具有缺失值的变量数量增加,所需的附加变量数量也增加。例如,在 3 个变量的情况下,假设所有 6 个缺失数据组合都可以存在 2 个或多个观测值(因此,例如,四个观测值缺少 X1 和 X2 但存在 X3;六个观测值缺少 X2 和 X3 但存在 X1;缺少五个观测值 X1、X2 和 X3)总共需要 11 个附加变量来创建系数和截距估计值。

很容易看出,该方法在 4 个以上变量的情况下变得更加笨拙。