当前位置:天才代写 > tutorial > 其他教程 > R处理惩罚缺失数据

R处理惩罚缺失数据

2017-12-04 08:00 星期一 所属: 其他教程 浏览:520

对付缺失数据凡是有几种应付手段,一种是当缺失数据较少时直接删除相应样本,另一种是对缺失数据举办插补,最后是利用对缺失数据不敏感的阐明要领,譬喻决定树。根基上缺失数据处理惩罚的流程是首先判定其模式是否随机,然后找出缺失的原因,最后对缺失值举办处理惩罚。


一、判定缺失数据
在R语言中缺失值凡是以NA暗示,判定是否缺失值的函数是is.na。另一个常用到的函数是complete.cases,它对数据框举办阐明,判定某一视察样本是否完整。下面我们读取VIM包中的sleep数据作为例子,它的样本数为62,变量数为10,由complete.cases函数计较可知完整的样本个数为42。
———————-
data(sleep, package=”VIM”)
dim(sleep)
sum(complete.cases(sleep))
———————-
二、摸索缺失数据的模式
存在缺失数据环境下,需进一步判定缺失数据的模式是否随机。在R中是操作mice包中的md.pattern函数。
———————-
library(mice)
md.pattern(sleep)
———————-

   BodyWgt BrainWgt Pred Exp Danger Sleep Span Gest Dream NonD
42 1 1 1 1 1 1 1 1 1 1 0
2 1 1 1 1 1 1 0 1 1 1 1
3 1 1 1 1 1 1 1 0 1 1 1
9 1 1 1 1 1 1 1 1 0 0 2
2 1 1 1 1 1 0 1 1 1 0 2
1 1 1 1 1 1 1 0 0 1 1 2
2 1 1 1 1 1 0 1 1 0 0 3
1 1 1 1 1 1 1 0 1 0 0 3
0 0 0 0 0 4 4 4 12 14 38

上表中的1暗示没有缺失数据,0暗示存在缺失数据。第一列第一行的42暗示有42个样本是完整的,第一列最后一行的1暗示有一个样本缺少了span、dream、nond三个变量,最后一行暗示各个变量缺失的样本数合计。

另外还可以利用vim包的aggr函数以图形方法描写缺失数据
———————-
aggr(sleep)
———————-


上面的左图显示各变量缺失数据比例,右图显示了各类缺失模式和对应的样本数目,显示nond和dream常常同时呈现缺失值。

三、处理惩罚缺失数据

  • 删除缺失数据样本,其前提是缺失数据的比例较少,并且缺失数据是随机呈现的,这样删除缺失数据后对阐明功效影响不大。
  • 用变量均值或中位数来取代缺失值,其利益在于不会淘汰样本信息,处理惩罚简朴。可是缺点在于当缺失数据不是随机呈现时会产成偏误。
  • 多重插补法(Multiple imputation):多重插补是通过变量间干系来预测缺失数据,操作蒙特卡罗要领生成多个完整数据集,再对这些数据集别离举办阐明,最后对这些阐明功效举办汇总处理惩罚。在R语言中实现要领是利用mice包中的mice函数,生成多个完整数据集存在imp中,再对imp举办线性回归,最后用pool函数对回归功效举办汇总。汇总功效的前面部门和普通回归功效相似,nmis暗示了变量中的缺失数据个数,fmi暗示fraction of missing information,即由缺失数据孝敬的变异。
  • ———————-
    library(mice)
    imp=mice(sleep,seed=1234)
    fit=with(imp,lm(Dream~Span+Gest))
    pooled=pool(fit)
    summary(pooled)
     

      关键字:

    天才代写-代写联系方式