使用BIC准则运行逐步线性模型

17

能否将逐步线性模型设置为使用BIC准则而不是AIC?

我一直在尝试,但它仍然使用AIC值计算每个步骤。

null = lm(data[,1] ~ 1)
full = lm(data[,1] ~ age + bmi + gender + group)
step(null, scope = list(lower=null,upper=full),
     direction="both", criterion = "BIC")
1个回答

26

将参数k=log(n)添加到step函数中(模型矩阵中样本数n

来自?step

参数:
...

k是用于惩罚的自由度数量的倍数。 只有当k = 2时才会得到真正的AIC;k = log(n)有时被称为BIC或SBC。


5
n是需要知道的观察值数量,而k是要使用的每个参数的惩罚数值。 - user1834437
抱歉这么晚才问,我尝试了您的方法,在参数中加入$k=log n$,但是得到的最佳模型与直接使用这些选定变量计算BIC时有所不同。为什么会这样呢?谢谢! - Nan
也许它的计算方式不同,通常对数似然函数中的常数被省略了。 - rcs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接