每位数据科学家都应了解的处理缺失值的顶级技术

2025年1月7日 | 阅读 8 分钟

在统计技术领域,缺失信息几乎是不可避免的。无论您是处理调查数据、时间序列数据还是来自各种来源的大型数据集,缺失值都可能带来巨大挑战。有效地处理这些缺失值至关重要,因为即使是事实中的微小空白也可能导致结果偏差、模型准确性下降和误导性结论。

理解缺失数据

缺失数据是在几乎所有数据集中都普遍存在的一个问题,无论其大小或来源如何。理解这种缺失数据的性质至关重要,因为它会影响您将使用的处理策略。存在几种不同类型的缺失数据,每种类型都需要一种特定的方法。

缺失数据类型

完全随机缺失(MCAR)

当一个数据点缺失的可能性独立于所有其他观测数据或缺失数据本身时,该数据被认为是完全随机缺失的。简单来说,缺失背后没有模式或原因。如果您的数据是 MCAR,处理缺失数据会非常简单,因为您选择的任何方法都不会引入偏差。然而,MCAR 在现实世界数据中很少见。

随机缺失(MAR)

当缺失与某些其他观测数据相关,但与缺失数据本身的值无关时,数据被认为是随机缺失的。例如,如果老年参与者遗漏调查回复的频率更高,但不是直接由于他们的收入,那么数据就是 MAR。要处理 MAR,您可能需要使用更先进的技术来解释缺失数据与其他观测变量之间的关系。

非随机缺失(MNAR)

当数据缺失的可能性与缺失数据本身相关时,就称为非随机缺失。例如,高收入人群可能不太愿意透露其收入,导致高收入人群的收入数据缺失频率更高的情况。MNAR 是最难处理的类型,因为缺失与其所缺失的数据本身固有地相关,而忽略这一点会将巨大的偏差引入您的分析中。

理解您的数据是 MCAR、MAR 还是 MNAR,有助于决定处理缺失值的正确策略,确保您的分析保持准确和无偏差。

处理缺失数据前的初步步骤

在深入研究处理缺失数据的技术之前,首先采取一些初步步骤来了解您数据集中缺失的范围和性质至关重要。这些步骤将帮助您选择最合适的数据处理方法,并确保您的后续分析准确无误。

1. 分析缺失数据的程度

第一步是量化缺失了多少数据。这包括计算数据集中每列的缺失值百分比。例如,如果某一列的 5% 的值缺失,这可能是可以接受的,但如果 50% 的值缺失,则可能需要更严厉的措施。

  • 整体缺失数据百分比:计算您数据集中缺失数据的总体百分比。如果大量数据缺失,您可能需要考虑插补或其他高级技术。
  • 特定列分析:确定哪些列的缺失数据最多。某些列可能比其他列对您的分析更重要,因此了解缺失发生在哪里可以指导您的方法。

2. 可视化缺失数据

可视化工具可以帮助您识别模式并理解数据集中缺失数据的分布。可以使用各种绘图技术来直观地验证缺失情况。

  • 热力图:热力图可以突出显示数据集中缺失的值。这对于发现模式很有用,例如缺失值是否集中在特定的行或列。
  • 条形图:条形图可以显示不同列之间缺失数据的百分比,帮助您快速识别受影响最大的变量。
  • 矩阵图:这些图以矩阵形式显示缺失情况,其中缺失值以不同的颜色标记。此可视化可以帮助发现缺失数据是否与其他变量相关。

3. 确定缺失数据的原因

了解数据缺失的原因对于选择正确的处理方法至关重要。缺失数据可能出于多种原因,包括:

  • 数据收集错误:缺失值可能是由于数据输入错误、传感器故障或其他技术问题造成的。在这种情况下,在处理缺失数据之前,可能需要先解决根本问题。
  • 无响应:在调查或问卷中,某些受访者可能不回答特定问题。这可能导致与受访者特征相关的缺失数据模式。
  • 故意遗漏:有时,由于隐私问题,数据会被故意遗漏,或者受访者可能会跳过他们觉得敏感或困难的问题。

识别缺失数据的根本原因有助于确定是删除、插补还是以其他方式对缺失数据进行建模。

通过仔细分析、可视化和理解缺失数据背后的原因,您可以就如何处理它做出明智的决定,确保您的数据在后续分析中尽可能准确和具有代表性。

处理缺失数据的技术

处理缺失数据是数据预处理的关键组成部分。您选择处理缺失值的方法会显著影响您分析的质量和机器学习模型的性能。以下是一些最常用的处理缺失数据的方法。

1. 删除缺失数据

删除数据是处理缺失值最直接的方法。但是,它可能导致宝贵数据的丢失,因此重要的是要谨慎使用此技术。

  • 列表删除
    此方法涉及删除包含至少一个缺失值的任何行。它易于实现,并确保仅在分析中使用完整数据。但是,如果许多行包含缺失值,它可能导致大量数据丢失。
  • 成对删除
    成对删除的侵扰性比列表删除小。它仅为特定分析删除缺失数据,使您可以保留尽可能多的数据。例如,在计算变量之间的相关性时,成对删除将使用每对变量的所有可用数据。

2. 插补技术

插补涉及用替换值填充缺失值,这有助于保持数据集的大小和完整性。

  • 均值/中位数/众数插补
    这是一种简单且常用的技术,其中缺失值被相应列的均值、中位数或众数替换。虽然易于实现,但此方法可能会降低变异性并扭曲数据分布。
  • 前向/后向填充
    通常在时间序列数据中使用,前向填充用最后一个观测值替换缺失值,而后向填充使用下一个观测值。当数据预计在一段时间内保持相对稳定时,此方法很有用。
  • K-近邻(KNN)插补
    KNN 插补通过查找 K 个最近的观测值并对它们的值进行平均来填充缺失值。此方法考虑了数据点的邻近性,使其比简单的插补技术更准确,但可能计算成本高昂。
  • 多变量链式方程插补(MICE)
    MICE 是一种复杂的方法,它通过使用不同的预测模型多次插补缺失数据,然后对结果进行平均。它保留了变量之间的关系,使其成为具有复杂模式的数据集的强大工具。
  • 回归插补
    此方法使用回归模型根据其他变量来预测和插补缺失值。虽然它考虑了变量之间的相关性,但如果回归模型不合适,则可能会引入偏差。
  • 插补的预测模型
    可以使用高级机器学习模型,如随机森林或 XGBoost,来预测缺失值。这些模型可以捕获数据中的复杂关系,从而实现更准确的插补,但它们需要更多的计算资源。

3. 使用缺失数据的指示符

创建指示符变量是一种在模型中标记缺失数据的方法,使模型可以直接考虑缺失情况。

  • 缺失指示符
    此技术涉及为每个具有缺失值的特征创建一个新的二元变量,指示该值是否缺失(1)或未缺失(0)。此方法可以帮助您的模型理解缺失情况本身的模式,这可能很有信息量。

处理缺失数据的先进技术

对于更复杂的数据集或标准方法不足的情况,可能需要先进的技术。

多重插补

此技术生成数据集的多个版本,每个版本都包含不同的插补值,然后合并结果。多重插补考虑了与缺失数据相关的***,使您的分析更加稳健。

期望最大化(EM)算法

EM 算法通过找到最大似然估计来迭代地估计缺失数据,从而考虑了缺失值中的***。它在处理复杂数据结构中的缺失数据方面特别有用。

生成对抗插补网络(GAIN)

GAIN 是一种基于深度学习的方法,它使用对抗性训练来插补缺失值。此方法对于大型复杂数据集非常强大,能够捕捉数据中的复杂模式。

特定领域技术

在某些情况下,利用领域知识可以实现更准确的插补。

利用领域知识进行插补

领域知识可以通过提供关于哪些值可能或可能存在的信息来指导插补过程,尤其是在医疗保健或金融等专业领域。

用于缺失数据的***数据增强

数据增强涉及生成***数据来填充空白。此技术常用于图像和文本分析,以创建额外的***数据点,从而更有效地训练模型。

忽略缺失数据

在某些情况下,最好保持缺失数据不变,特别是当您的算法可以处理它或缺失本身具有信息量时。

适用场景

某些机器学习算法,如基于树的模型,可以原生处理缺失数据。此外,如果缺失模式本身具有信息量,您可以选择保留缺失值以保留这些信息。

处理缺失数据的最佳实践

无论您选择哪种技术,遵循最佳实践以确保您对缺失数据的处理能够增强而不是削弱您的分析至关重要。

插补技术的交叉验证

使用交叉验证来验证您的插补技术,以确保它们能提高模型性能。此步骤对于避免过拟合或引入偏差至关重要。

确保插补后的数据完整性

在插补缺失数据后,检查数据集的完整性,以确保插补值具有意义,并且整体数据分布保持一致。

通过仔细选择和应用这些技术,您可以有效地管理缺失数据,从而获得更可靠、更准确的分析。