什么是可以处理NA的leap()的替代方案?

时间:2013-11-29 11:49:44

标签: r na genetics

需要应用Branch and bound方法来选择最佳模型。只有当数据没有leaps()值时,来自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的{​​{1}}的替代方案是什么?我正在编写自己的功能来做类似的事情,但它变得越来越笨重,我觉得我正在重新发明轮子......

更新 我尝试使用NA,面临同样的数据丢失问题:

stepAIC()

2 个答案:

答案 0 :(得分:1)

你可以尝试bestglm :: bestglm,其中可以指定分支绑定方法。 NA可以通过na.action参数来处理,就像在glm中一样。请点击此处获取更多信息: http://cran.r-project.org/web/packages/bestglm/vignettes/bestglm.pdf

答案 1 :(得分:0)

  

这是一个统计问题,因为AIC无法比较建立的模型   不同的数据集。所以比较模型有没有确定   变量,您需要删除那些缺少值的行   变量。您可能需要“重新考虑您的建模策略”,to quote Ben Bolker。   否则,您可能还想查看AIC的变体,快速   谷歌搜索最近出现JASA article   这可能是一个很好的起点。

- Aaron