外观
缺失值的三种类型
3 Types of Missing Values
在数据集中看到缺失值后,大多数人会直接跳到填补它们。但尽管听起来有些反直觉,处理缺失数据(missing data)的第一步绝不应是缺失值填补(imputation)。相反,第一步必须是弄清数据缺失背后的原因。这是因为数据填补策略在很大程度上取决于数据为什么缺失。

更具体地说,缺失可以分为三种类型:
- 完全随机缺失(MCAR)。
- 随机缺失(MAR)。
- 非随机缺失(MNAR)。
只有确定了原因,我们才能采用合适的填补技术。什么是 MCAR、MAR 和 MNAR?让我们在本章中详细理解它们。
MCAR 是指数据确实是随机缺失的,且与任何已观测或未观测的变量都没有关系。换句话说,缺失的数据点不遵循任何可辨识的规律。

例如,在带有缺失值的调查反馈中,假设是 MCAR,就意味着某些参与者可能无意中跳过了任意某个问题。然而据我的经验,对于缺失而言 MCAR 多半是一种不切实际的假设,也就是说,对于大多数带缺失值的真实数据集,数据通常不是 MCAR。这是因为在真实场景中,缺失数据的出现往往受某个因素影响,这个因素要么是已观测的,要么是未观测的。人类行为、调查的实施方式或任何外部事件,都可能成为数据集中出现缺失值的诱因。例如,参与者可能有选择地省略敏感信息,或者某些群体更倾向于不回应,从而导致缺失。正因如此,除非你了解端到端的数据收集过程和/或具备相关领域专业知识,否则对缺失数据假设为 MCAR 并不是一个明智的假设。在这里,数据科学家与数据工程师沟通、了解数据收集过程变得至关重要。事实上,这不仅仅适用于 MCAR,也适用于我们稍后将讨论的另外两种情况。

了解数据收集过程绝不会带来坏处。话虽如此,如果在分析、领域专家的意见和/或了解数据收集机制之后,认为假设缺失值为 MCAR 是合理的,那么没有什么能阻止我们这样做。这时你可以采用最简单的单变量填补技术。
MAR 是指某个特征(feature)的缺失可以由数据集中其他已观测特征来解释。

与 MCAR 相比,MAR 在实践中更为常见。在这种情况下,可以通过合适的统计方法以合理的精度来刻画缺失。因此,尽管数据是缺失的,但它的出现仍然可以(在某种程度上)基于数据集中已有的信息进行估计。判定 MAR 的一种常见做法是对另一个已观测特征进行条件化,并观察缺失概率是否随之上升。

例如,在一项学业表现调查中,成绩较高的学生可能更不愿意透露他们学习的小时数(也许是出于竞争)。这正是 kNN 填补、MissForest 等技术相当有效的地方。它们利用其他已观测特征来填补缺失的特征。如果你想了解这些技术,本章正是围绕这个主题展开的。
MNAR 是三者中最复杂的情况。在 MNAR 中,缺失要么归因于缺失值本身,要么归因于我们未收集数据的那些特征。

换句话说,在 MNAR 中,缺失变量存在某种确定的规律。然而,这种规律与任何已观测特征都无关。这不同于 MCAR——后者没有任何确定的规律。
例如,在一项健康调查中,压力水平很高的参与者可能会因为羞耻感或害怕被评判,而有意选择不透露自己的压力水平。结果,关于压力水平的缺失数据并不是随机的;它受到了压力水平本身的影响。所以从某种意义上说,压力水平越高,一个人就越不可能透露它,该值出现在所收集数据集中的可能性也就越低。因此,缺失直接取决于那个本身缺失的变量。这很棘手,不是吗?除了收集更多数据/特征之外,我们能做的不多。此外,要巧妙地处理 MNAR 并改进数据收集过程,领域专业知识变得极其重要。有时,我也倾向于采用典型的填补技术(用于 MCAR 和 MAR 的那些)继续推进,因为在大多数情况下进一步收集数据并不可行。但如上所述,MNAR 中存在确定的缺失规律,这可能很重要。而直接填补会丢弃这一信息。保留这种缺失规律的一种方式是添加一个二值特征,指示该特征是否经过了填补。

这样,ML 算法仍然能够访问并学习缺失数据的模式。