R 缺失值的插补

R 缺失值的插补,r,missing-data,imputation,R,Missing Data,Imputation,我想根据变量的其他值的分布来估算数据集中缺失的值 假设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 # 有人能帮忙吗 约翰如果我理解正确,您需要: var[is.na(var)] <-

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

假设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 #
有人能帮忙吗


约翰

如果我理解正确,您需要:

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

var[is.na(var)]如果我理解正确,您需要:

var[is.na(var)] <- sample(1:3, sum(is.na(var)), replace=TRUE, prob=c(0.3,0.2,0.5)) 
var[is.na(var)]
我想根据变量的其他值的分布来估算数据集中缺失的值

我对Tibshirany的pamr套餐非常满意。它基于缺失数据点的k个最近邻进行插补。简单地说:

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

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

我对Tibshirany的pamr套餐非常满意。它基于缺失数据点的k个最近邻进行插补。简单地说:

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

imputed.matrix 0.9。

这将返回值2,1,2,2,2,1,2,2和以下警告:在var[is.na(var)]中感谢James,这似乎仍然无法正常工作。运行代码5次,得到20x1、9x2和21x3,对应于概率p(1)=0.4、p(2)=0.18和p(3)=0.42。可能运行足够多的重复,概率将收敛到所需的水平。这将返回值2,1,2,2,2,1,2,2和以下警告:在var[is.na(var)]中感谢James,这似乎仍然无法正常工作。运行代码5次,得到20x1、9x2和21x3,对应于概率p(1)=0.4、p(2)=0.18和p(3)=0.42。也许运行足够的重复,概率将收敛到期望的水平。