R 带BIC的正向程序
我试图用正向逐步算法和BIC准则为线性模型选择变量。正如帮助文件所示,正如我一直所做的那样,我写了以下内容:R 带BIC的正向程序,r,R,我试图用正向逐步算法和BIC准则为线性模型选择变量。正如帮助文件所示,正如我一直所做的那样,我写了以下内容: model.forward<-lm(y~1,data=donnees) model.forward.BIC<-step(model.forward,direction="forward", k=log(n), scope=list(lower = ~1, upper = ~x1+x2+x3), data=donnees) 我以前从未真正问过自己这个问题,但我认为n应该在函数
model.forward<-lm(y~1,data=donnees)
model.forward.BIC<-step(model.forward,direction="forward", k=log(n), scope=list(lower = ~1, upper = ~x1+x2+x3), data=donnees)
我以前从未真正问过自己这个问题,但我认为n
应该在函数步骤中定义(它是每次迭代时模型中变量的数量)。。。。不管怎样,这个问题以前从未发生在我身上!重新启动R不会改变任何事情,我承认我不知道是什么导致了这个错误
下面是一些要测试的代码:
y<-runif(20,0,10)
x1<-runif(20,0,1)
x2<-y+runif(20,0,5)
x3<-runif(20,0,1)-runif(20,0,1)*y
donnees<-data.frame(x1,x2,x3,y)
y
或者更一般地说
... k=log(nobs(model.forward)) ...
(例如,如果您的数据中有NA
值,那么nobs(model.forward)
将不同于nrow(donnees)
。另一方面,如果您的预测值中有NA
值,您无论如何在进行模型选择时都会遇到麻烦。)错误,你让我意识到我错了n的意思。。。我以为这是模型中变量的数量,但我被REML混合模型的估计搞混了。你说得对,非常感谢!我仍然想知道为什么n在使用时不起作用。
step(model.forward,direction="forward",
k=log(nrow(donnees)), scope=list(lower = ~1, upper = ~x1+x2+x3),
data=donnees)
... k=log(nobs(model.forward)) ...