需要应用分支定界方法来选择最佳模型。从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
之外,有什么可以处理NA
的替代方法吗?我正在编写自己的函数来做类似的事情,但它变得又大又笨重,感觉自己在重新发明轮子...
更新:
我已经尝试使用stepAIC()
,面临着同样的缺失数据问题:
Error in stepAIC(fit) :
number of rows in use has changed: remove missing values?
stepAIC()
(前向和后向)真的不好吗? - Stephen HendersonstepAIC()
函数是否会遍历每种可能的组合? - zx8754step()
函数一样,MASS::stepAIC()
函数不进行前向、后向或双向搜索。对于大多数数据集,通常会找到与leaps()
函数相同的模型(我想是这样的吧???)。 - Stephen Henderson