首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何处理缺失值

如何处理缺失值

作者头像
AiTechYun
发布2019-12-17 14:33:31
1.3K0
发布2019-12-17 14:33:31
举报
文章被收录于专栏:ATYUN订阅号ATYUN订阅号

编辑 | sunlei 发布 | ATYUN订阅号

我在数据清理/探索性分析中遇到的最常见问题之一是处理缺失的值。首先,要明白没有好的方法来处理丢失的数据。根据问题的类型,我遇到过不同的数据归集解决方案-时间序列分析,ML,回归等,很难提供一个通用的解决方案。在篇文章中,我试图总结最常用的方法,并试图找到一个结构化的解决方案。

归集与删除数据

在使用数据归集方法之前,我们必须先了解数据丢失的原因。

1、随机缺失(MAR):随机缺失意味着数据点缺失的倾向与缺失的数据无关,而是与一些观察到的数据相关

2、完全随机缺失(MCAR):某个值缺失的事实与它的假设值以及其他变量的值无关

3、非随机缺失(MNAR):两个可能的原因是,缺失值取决于假设的值(例如,高薪人群通常不想在调查中透露他们的收入)或缺失值依赖于其他变量的值(例如假设女性一般不愿透露他们的年龄!此处年龄变量缺失值受性别变量影响)

在前两种情况下,根据数据的出现情况删除缺失值的数据是安全的,而在第三种情况下,删除缺失值的观察值会在模型中产生偏差。所以在移除观测结果之前,我们必须非常小心。请注意,归集并不一定会给出更好的结果。

删除

Listwise

listwise deletion(complete case analysis)【列表删除(完全案例分析)】删除一个或多个缺失值的观察的所有数据。特别是如果缺少的数据仅限于少量的观察,您可以选择从分析中消除这些情况。然而,在大多数情况下,使用列表删除通常是不利的。这是因为MCAR(完全随机缺失)的假设通常很少得到支持。因此,列表删除方法产生有偏差的参数和估计。

成对

成对删除分析所有感兴趣的变量存在的情况,从而最大限度地通过分析的基础上获得的所有数据。这项技术的一个优点是它增加了你的分析能力,但它有很多缺点。它假设丢失的数据是MCAR。如果你删除成对的数据,那么你将得到不同数量的观测数据,这些数据将对模型的不同部分产生影响,这将使解释变得困难。

删除变量

在我看来,保留数据总比丢弃数据好。有时,如果数据丢失超过60%的观察结果,但只有当该变量不重要时,才可以删除变量。尽管如此,与删除变量相比,归集始终是首选。

时间序列特定方法

前向观测(LOCF)和后向观测(NOCB)

这是一种分析纵向重复测量数据的常用统计方法,其中一些后续观测数据可能会丢失。纵向数据在不同的时间点跟踪相同的样本。这两种方法都会在分析中引入偏差,并且在数据有明显趋势时表现不佳

线性插值

该方法适用于具有一定趋势的时间序列,但不适用于季节数据

数据:Tsairgap表单库(输入),红色插值数据

平均值、中值和模式

计算总体均值、中值或模式是一种非常基本的归集方法,它是唯一不利用时间序列特征或变量之间关系的被测函数。它很快,但有明显的缺点。一个缺点是平均估算减少了数据集中的方差。

线性回归

首先,用一个相关矩阵来识别缺少值的变量的几个预测器。在回归方程中选取最佳的预测因子作为自变量。缺少数据的变量用作因变量。使用具有预测变量完整数据的情况来生成回归方程;然后使用该方程来预测不完整情况下的缺失值。在迭代过程中,插入缺失变量的值,然后使用所有情况预测因变量。重复这些步骤,直到每个步骤的预测值之间几乎没有差别,即它们是收敛的,它“理论上”为丢失的值提供了很好的估计。然而,这种模式有几个缺点,往往大于优点。首先,因为替换的值是从其他变量中预测出来的,它们往往“非常吻合”,所以标准误差被缩小了。当回归方程中使用的变量可能不存在线性关系时,还必须假设它们之间存在线性关系。

多重替代法

1、归责: 将不完整数据集的缺失项插补M次(M=3)。请注意,估算值来自分布。模拟随机绘图不包括模型参数的不确定性。更好的方法是使用马尔可夫链蒙特卡罗((MCMC)模拟。这个步骤产生m个完整的数据集。

2、分析:分析m个完整的数据集。

3、池:将m分析结果集成到最终结果中

资料来源:

http://www.stefvanbuuren.nl//publications/mice%20in%20R%20-%20draft.pdf

这是目前最受欢迎的归责方法,原因如下:

-使用方便

-无偏差(如果归责模型正确)

范畴变量的归算

1、模式归算是一种方法,但它必然会引入偏差

2、缺失的值可以单独作为一个类别处理。我们可以为缺失的值创建另一个类别,并将它们用作不同的级别。这是最简单的方法。

3、预测模型:在这里,我们创建一个预测模型来估计将替代缺失数据的值。在本例中,我们将数据集分为两组:一组没有缺失变量值(training),另一组缺失值(test)。我们可以使用逻辑回归和方差分析等方法进行预测

4、多重替代法

KNN邻近算法

还有其他的机器学习技术,如XGBoost和随机森林的数据输入,但我们将讨论KNN的广泛应用。该方法根据距离测度选取k个邻域,并以其平均值作为估算值。该方法需要选择最近邻的数目和距离度量。KNN既可以预测离散属性(k个近邻中出现频率最高的值),也可以预测连续属性(k个近邻中出现频率最高的值)。

距离度量根据数据类型而变化:

  1. 连续数据:连续数据常用的距离度量有欧几里德、曼哈顿和余弦
  2. 分类数据:本例中一般使用汉明距离。它获取所有的分类属性,如果两个点之间的值不相同,则分别计算一个。然后,汉明距离等于值不同的属性的数量。

KNN算法最吸引人的特性之一是它易于理解和实现。KNN的非参数特性使它在某些数据可能非常“不寻常”的情况下具有优势。

KNN算法的一个明显缺点是,在分析大型数据集时非常耗时,因为它在整个数据集中搜索类似的实例。此外,由于最近邻和最近邻之间的差异很小,在高维数据条件下,KNN的精度会严重下降。

在以上所讨论的方法中,多重归责法和KNN法被广泛使用,而多重归责法一般比较简单。

参考文献:

  1. https://www.bu.edu/sph/les/2014/05/Marina-tech-report.pdf
  2. https://arxiv.org/pdf/1710.01011.pdf
  3. https://machinelearningmastery.com/k-nearest-neighbors-formachine-learning/
  4. https://kevinzakka.github.io/2016/07/13/k-nearest-neighbor/
  5. Time-Series Lecture at University of San Francisco by Nathaniel Stevens

原文链接:

https://towardsdatascience.com/how-to-handle-missing-data-8646b18db0d4

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ATYUN订阅号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 删除
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档