R预测缺失值

时间:2015-05-09 10:05:01

标签: r machine-learning classification missing-data predict

如何根据R中的其他值预测缺失值NA?平均值不够。 values

所有值都是可靠的 - 列值是树范围率,行是以米为单位的三个高度。

我的Excel文件是here

有没有可行的方法呢?我一直在尝试预测功能但没有成功。

1 个答案:

答案 0 :(得分:4)

有很多方法可以解决这个问题,但这里有一个方法。我也尝试在你的数据集上使用它,但它太小,有太多的线性组合或其他东西,因为它没有收敛。

阿米莉亚 - http://fastml.com/impute-missing-values-with-amelia/

data(mtcars)

mtcars1<-mtcars[rep(row.names(mtcars),10),] #increasing dataset

#inserting NAs into dataset
insert_nas <- function(x) {
    len <- length(x)
    n <- sample(1:floor(0.2*len), 1) #randomly choosing # of missing obs
    i <- sample(1:len, n) #choosing which to make missing
    x[i] <- NA 
    x
}

mtcars1 <- sapply(mtcars1, insert_nas)

ords = c( 'cyl','hp','vs','am','gear','carb' ) #integers - your dataset has no integers so don't specify this
#idvars = c( 'these', 'will', 'be', 'ignored' )
#noms = c( 'some', 'nominal', 'columns' ) #categorical

a.out = amelia( mtcars1,  ords = ords)

a.out$imputations[[1]]

#you can also ensemble your imputations if you'd like. Here we ensemble 3 of the 5 returned imputations
final_data<-as.data.frame(sapply(colnames(a.out$imputations[[1]]),function(i)
    rowMeans(cbind(a.out$imputations[[1]][,i],a.out$imputations[[2]][,i],a.out$imputations[[3]][,i]))))