【问题标题】:Imputation of missing values缺失值的插补
【发布时间】:2013-07-08 10:22:31
【问题描述】:

我想根据变量其他值的分布来估算数据集中的缺失值。

假设 30 % 的值 = 1、20 % = 2 和 50 % = 3,实际上我想做以下事情:

impute(var,1) # for 30 % of the NA occurrences #
impute(var,2) # for 20 % of the NA occurrences #
impute(var,3) # for 50 % of the NA occurrences #

有人可以帮忙吗?

约翰

【问题讨论】:

    标签: r missing-data imputation


    【解决方案1】:

    我想根据变量其他值的分布来估算数据集中的缺失值。

    我对 Tibshirany 的 pamr 软件包非常满意。它基于缺失数据点的 k 个最近邻进行插补。简单地调用:

    imputed.matrix  <- pamr.knnimpute(list(x==matrix.with.missing.data))[['x']]
    

    通常工作正常。

    请注意,pamr.knnimpute 是不确定的;不过,所有估算对的典型相关性 > 0.9。

    【讨论】:

      【解决方案2】:

      如果我理解正确的话:

      var[is.na(var)] <- sample(1:3, sum(is.na(var)), replace=TRUE, prob=c(0.3,0.2,0.5)) 
      

      【讨论】:

      • 这将返回值 2,1,2,2,1,2,2,1,2,2 和以下警告:在 var[is.na(var)]
      • 谢谢詹姆斯,这似乎仍然无法正常工作。运行代码 5 次,我得到 20 x 1、9 x 2 和 21 x 3,这对应于概率 p(1)=0.4、p(2)=0.18 和 p(3)=0.42。也许运行足够的重复,概率会收敛到所需的水平。
      猜你喜欢
      • 2018-08-14
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 2017-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多