gpt4 book ai didi

r - 与 BIC 的转发程序

转载 作者:行者123 更新时间:2023-12-02 21:42:20 25 4
gpt4 key购买 nike

我正在尝试使用前向逐步算法和 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)

其中 k=log(n) 表明我正在使用 BIC。但 R 返回:

Error in extractAIC.lm(fit, scale, k = k, ...) : object 'n' not found

我以前从未真正问过自己这个问题,但我认为 n 应该在函数 step 中定义(它是模型中每个阶段的变量数量)迭代)...无论如何,这个问题以前从未发生在我身上!重新启动 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)

有什么想法吗?

最佳答案

step(model.forward,direction="forward", 
k=log(nrow(donnees)), scope=list(lower = ~1, upper = ~x1+x2+x3),
data=donnees)

或者更一般地说...

... k=log(nobs(model.forward)) ...

(例如,如果数据中有 NA 值,则 nobs(model.forward) 将与 nrow(donnees) 不同code>。另一方面,如果您的预测变量中有 NA 值,那么您在进行模型选择时无论如何都会遇到麻烦。)

关于r - 与 BIC 的转发程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20163545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com