多变量缺失值的数据集

机器算法验证 自习 造型 数据集 缺失数据 数据插补
2022-04-09 21:04:48

我正在尝试分析一组与健康领域相关的数据,但我不确定如何处理缺失值。

目的:调整具有离散响应的模型,研究某些变量对响应的影响。

场景如下

  • 大约 100000 次观测
  • 20 个变量
  • 95% 缺失数据的变量
  • 具有 53% 缺失数据的变量
  • 具有 52% 缺失数据的变量
  • 有 2% 缺失数据的两个变量

最初我考虑丢弃这个带有许多缺失值的变量,但在我看来这对我的分析很重要。第二种选择是仅使用具有完整数据的观察结果,但我不知道这是否会给我的分析带来问题。

我对插补一无所知,在这种情况下有什么办法吗?

编辑:在这种情况下是否可行,有这么多变量使用像主成分这样的多元技术?

EDIT2:我的数据集基本上是每位入院患者的病历。缺失的数据不是随机的,只是没有为所有患者收集所有信息

3个回答

@Tim 给出了很好的回应。除此之外,关于处理缺失值 (MV) 的最佳思考始于 Donald Rubin 和 Roderick Little 在他们的《缺失数据的统计分析》一书中,现已出版第 9 版。他们将分类分为 MAR、MCAR 等。在他们的几本书中,我会添加 Paul Allison 的可读性很强的 Sage 书籍Missing Data,它仍然是文献中关于这个主题的最好、最容易理解的方法之一。

一些常用的,坏的多年来出现了用于处理缺失数据的启发式方法,其中许多方法在今天仍然可以使用,因为它们很容易实现“解决方案”。其中包括已经提到的那些,例如离散变量并创建一个标记为“缺失”或“NA”(不可用,未知)的垃圾类别,该变量的所有缺失值都被扔进其中,以及对于连续变量,插入带有常数的缺失值——例如算术平均值。其次,对于回归模型,一些人建议使用虚拟变量 (0,1) 来指示 MV 的存在(不存在)。假人旨在“捕捉” MV 对模型的整体影响,同时适当调整参数。这些都是坏主意,因为在第一种情况下,

所有插补选项中偏差最小的是回归模型。美国统计学家的一篇论文中(我不再有参考文献,抱歉),已证明回归中 MV 的虚拟变量不仅不能捕捉缺失值的影响,而且还会产生有偏差的参数。AmStat论文的这些结论基于对各种 MV 选项的情景与完整信息数据的比较。作者的建议是,假设缺失信息的量级或数量不是太多太多大,使用偏差最小的解决方案——基于删除包含 MV 的观察后可用数据的完整信息建模插补。当然,这种回应需要回答“什么是太多?” 在这里,没有坚定的基准,只有经验的、主观的启发式和经验法则,没有任何坚定的理论动机。这意味着由分析师决定。就这样,@Discipulus 的经验法则是使用包含 50% 或更少 MV 的变量,这当然是一种合理的启发式方法。在 OP 的情况下,这将排除包含超过 50% MV 的两个变量,这些变量被描述为对分析“重要”。也就是说,可以安全地假设 95% 的 MV 符合“太多”的条件。

如果认为没有太多的MV,那么使用多重插补的一些变体来填补它们。在这里,也有许多不好的方法可供选择,例如,“排序的热甲板”多重插补,其中观察结果在一串完全观察到的变量中进行排序,并且完全观察到的值最接近观察值,但该类中缺少信息字符串用作插头。一般来说,所有这些堵塞 MV 的“机械”解决方案都将被拒绝,以尊重基于模型的多重插补。

在 Rubin 教授的 ASA 研讨会上,讨论了几种“最佳”实践,用于处理数据集中包含 MV 的多个变量。首先,按变量的频率或缺失信息的百分比从高到低对变量进行排序,然后开始对包含最轻或最少 MV 的变量进行插补,一次一个变量。然后,在模型构建过程中为每个后续变量保留并使用这些新插入的变量。在构建插补模型时使用您可用的每个变量,包括目标或因变量,并排除具有 MV 的排名较低的变量。

构建和评估基于模型的插补的关键指标是将预插补均值和标准偏差(基于删除 MV 后的完整信息)与插补后或插入值均值和标准偏差进行比较。如果插补成功,那么在这些边际中应该观察到很少或没有(显着)差异。在这一点上需要注意一个重要的注意事项:这个度量和多重插补通常旨在评估整体的保存情况。或无条件的边际。这意味着,如果与完整但不可用的信息相比,使用和分配给每个 MV 字段的实际值对于该观察很可能是“错误的”。例如,在基于具有自我报告的调查信息(实际值)与地理人口信息领先供应商所做的估算(估算值)的样本的实际值与估算值的头对头比较中,户主年龄和收入等估算字段在个人观察水平上的错误率接近 80%。即使在根据中位数将这些字段划分为高组和低组之后,插补仍然有超过 50% 的时间是错误的。然而,边缘或多或少地被准确地恢复了。

最后一点,插补可能适用于特征、预测变量或自变量,但不建议用于目标或因变量。

这完全取决于数据丢失的原因。如果数据完全随机缺失,您可以丢弃不完整的数据。如果数据随机丢失,最好的选择是多重插补(例如,查看 R 中的miceormi包,以及描述如何使用多重插补的各种博客文章)。

但是,对于您拥有的数据类型,丢失的数据通常不会在任何意义上“随机”丢失。例如,如果数据丢失是因为人们没有接受特定的程序,或者没有进行特定的测试,或者只是在医院呆了很短的时间,所以收集到的数据很少,那么插补是一种糟糕的方法,因为你丢失的数据是不可忽视。一种解决方案是将您的每个预测变量视为分类,其中一个类别称为“无数据”。至于这是否是最佳解决方案,如果没有关于您的数据、问题和模型的更多详细信息,就无法说。

在您决定是否要进行估算之前,您应该问自己,不给您信息的患者是否应该成为您模型的一部分例如,如果您想对控制与治疗进行建模,则应删除所有那些缺失的患者(他们不会告诉您他们属于哪个组)。但是,如果您只想构建医院所有患者的列联表(或只是探索性分析),您可能希望保留患者。

您需要有充分的插补理由,因为您的数据可能很敏感。例如,如果你用平均癌症发病率来估算患者,如果患者没有癌症怎么办?您将如何向您的老板解释您猜测预测癌症的模型?

在您的数据集中,任何不精确都可能是致命的。由于您丢失的数据不是随机的,因此最常见的策略是重新编码您的变量,以便您拥有一个新的“NA”类别。