R预测缺失值

R predict missing values

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

所有值都是可靠的 - 列值是树木范围率,行值是三米高度。

我的 excel 文件是 here

有什么办法可以做到吗?我一直在尝试使用预测功能但没有成功。

有多种方法可以解决此问题,但这里是一种方法。我也试过在你的数据集上使用它,但它要么太小,要么有太多线性组合,要么是其他原因,因为它没有收敛。

阿米莉亚 - 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]))))