填补缺失值的替代方法?

数据挖掘 预测建模
2022-03-05 18:54:38

因此,我很快了解到,处理您的某些观察中的特征缺失值是数据日常生活的一部分。我了解了估算的要点,何时/如何合适,何时不合适,我将在不久的将来阅读它。但是,这个呢:

假设你有预测器X1,,Xp,并且您想对二进制响应进行建模Y例如,通过逻辑回归。您不能为每个可能的预测变量子集建立一个单独的模型,并在这些预测变量碰巧存在时应用该模型进行预测,而不是仅仅将值归因于缺失的预测变量值吗?这些模型中的每一个都会自然地仅在这些预测变量(以及其他变量)存在的数据上进行训练。在我看来,这似乎是一种比仅仅弥补价值更合理的方法,但我对此没有理论依据。

我确实意识到这涉及构建2p不同的型号,有2p不同的模型矩阵等,但对于中等pn这可能是可行的,特别是如果您的一些功能往往比其他功能更容易丢失。

这是曾经做过吗?如果是这样,是否有在 R 中实现此功能的标准方法?在逻辑回归的情况下,您可以向 R 的 glm 函数指定您希望它如何处理 NA 值,但您唯一的选择似乎是完全抛弃观察结果,或者某种插补方案。

想法?

2个回答

假设您有这些模型,分为子空间,那么如果您的测试数据集中的一个点非常接近训练数据中缺失点的位置怎么办。最好的解决方案是什么?有两个最接近的模型的平均输出吗?输出是二进制的吗?然后,您是否必须根据这种接近程度对每个模型进行加权?然后我认为许多子模型可能会过度拟合数据子集。只是一些想法,可能很难克服。

此外,您可以使用其他类型的分类器来处理丢失的数据,例如某些决策树实现。

最后,数据插补是一门微妙的艺术,正确地做会利用你的模型。例如,您不想用平均值来估算所有缺失的数据,因为这样您可能会更改数据分布。Knn 技术或集成回归将是首选。

这些是我的想法:

在我看来,这似乎是一种比仅仅弥补价值更合理的方法,但我对此没有理论依据。

实际上,经典插补没有太多的理论依据。我认为当只有极少数预测变量缺少值时,您的方法是有意义的。例如,如果只有一个预测变量有缺失值,您可以构建一个模型来估算这些缺失值。但是,正如您所说,事情的规模非常糟糕。此外,除了计算问题之外,如果每个预测变量中都有很多缺失值,那么您的数据就不是很好,因此任何预测模型都不会很好。

有时会这样做,但我认为 R 中没有任何库可以实现它,您必须自己编写代码(我认为这并不难)。如果你这样做并且你的最终模型是逻辑回归,我不建议用另一个线性模型来拟合缺失值,因为你会遇到共线性问题。

通常要做的另一件事是,对于每个具有缺失值的预测器,创建一个二进制预测器,即0如果另一个预测变量的值缺失并且1除此以外。