r-leap()的替代方法是什么,可以处理NA



需要应用Branch和bound方法来选择最佳模型。jumps包中的leaps()工作良好,仅当数据没有NA值时,否则会抛出错误:

#dummy data
x<-matrix(rnorm(100),ncol=4)
#convert to 0,1,2 - this is a genetic data, NA=NoCall
x<-matrix(round(runif(100)*10) %% 3,ncol=4)
#introduce NA=NoCall
x[1,1] <-NA
#response, case or control
y<-rep(c(0,1,1,0,1),5)
leaps(x,y)
Error in leaps.setup(x, y, wt = wt, nbest = nbest, nvmax = NCOL(x) + int,  : 
  NA/NaN/Inf in foreign function call (arg 4)

仅使用complete.cases()不是一个选项,因为我丢失了80%的数据。

什么是leap的替代方案,可以处理NA s?我正在写我自己的函数来做类似的事情,但它变得又大又笨重,我觉得我在重新发明轮子。。。

更新:我尝试过使用stepAIC(),面临着同样的数据丢失问题:

Error in stepAIC(fit) : 
  number of rows in use has changed: remove missing values?

您可以尝试bestglm::bestglm,其中可以指定分支绑定方法。NAs可以像在glm中一样由na.action参数处理。有关其他信息,请参阅此处:http://cran.r-project.org/web/packages/bestglm/vignettes/bestglm.pdf

这是一个统计问题,因为AIC无法比较使用不同的数据集。因此,比较有和没有特定变量,则需要删除那些缺少值的行变量。您可能需要"重新考虑您的建模策略"引用本的话Bolker。否则,您可能还想了解AIC的变体谷歌搜索带来了最近的JASA文章这可能是一个很好的起点。

-Aaron

最新更新