R语言:用R语言填补缺失的数据

缺乏数据在分析数据集时可能不是一个微不足道的问题。函数

若是缺失数据的量相对于数据集的大小很是小,那么为了避免偏离分析而忽略缺乏特征的少数样本多是最好的策略,可是留下可用的数据点会剥夺某些数据的特征。spa

尽管某些快速修正如均值替代在某些状况下可能很好,但这种简单的方法一般会向数据中引入误差。code

在这篇文章中,咱们将使用airquality数据集(在R中提供)来推测缺失值。ip

为了本文的目的,我将从数据集中删除一些数据点。it

快速分类缺失数据

有两种类型的缺失数据:io

MCAR:随意丢失。function

MNAR:不是随意丢失的。随机数据丢失是一个更严重的问题,在这种状况下,进一步检查数据收集过程并尝试理解信息丢失的缘由多是明智的。例如,若是调查中的大多数人没有回答某个问题,他们为何这样作?这个问题不清楚吗?class

假设数据是MCAR,太多丢失的数据也可能成为一个问题。变量

pMiss < -  function(x){sum(is.na(x))/ length(x)* 100}

咱们发现臭氧几乎失去了25%的数据点,所以咱们可能会考虑将其从分析中删除或收集更多的测量数据。cli

其余变量低于5%的阈值,因此咱们能够保留它们。就样本而言,仅缺乏一个特征会致使每一个样本缺失25%的数据。若是可能,应丢弃缺乏2个或更多特征(> 50%)的样本。

查看缺失的数据模式

该mice软件包提供了一个很好的功能md.pattern(),能够更好地理解丢失数据的模式

输出结果告诉咱们,104个样本是完整的,34个样本只错过臭氧测量,4个样本只错过了Solar.R值,等等。

一个可能更有用的视觉表示可使用下面的VIM包获得

clipboard.png

该图有助于咱们理解几乎70%的样本没有遗漏任何信息,22%的人缺乏臭氧值,剩余的样本显示其余遗漏的模式。经过这种方法,我认为状况看起来更清楚一些。

marginplot

clipboard.png

左边的红色方块图显示Solar.R的分布与臭氧缺失,而蓝色方块图显示剩余数据点的分布。

若是咱们假设MCAR数据是正确的,那么咱们预计红色和蓝色方块图很是类似。

输入缺失的数据

如今咱们可使用该complete()函数返回已完成的数据集。

completedData < -  complete(tempData,1)

首先,咱们可使用散点图并将臭氧对全部其余变量进行绘图

xyplot(tempData,Ozone_Wind + Temp + Solar.R,pch = 18,cex = 1)

clipboard.png

密度图:

densityplot

clipboard.png

stripplot(tempData,pch = 20,cex = 1.2)

clipboard.png

相关文章
相关标签/搜索