是否有可能从R(BMA包)中的BMA中删除拦截。我尝试将'y~x'替换为'y~0 + x'(就像在glm中一样),但它没有效果。请问我能做些什么来克服这个问题?
我的测试数据:
x <- rbind(c(0, 0, 0),c(0, 1, 0),c(1, 0, 0),c(1, 1, 1))
colnames(x) <- c("x1","x2","x3")
y <- c(1,1,1,0)
d <- as.data.frame(cbind(y,x),stringsAsFActors=F)
命令
library(BMA)
bic.glm(y~0+x,data=d,glm.family=binomial(logit))
生成输出(带截距)
Call:
bic.glm.formula(f = y ~ 0 + x, data = d, glm.family = binomial(logit))
Posterior probabilities(%):
xx1 xx2 xx3
43.3 43.3 65.0
Coefficient posterior expected values:
(Intercept) xx1 xx2 xx3
28.338 -8.163 -8.163 -30.641
Warnmeldung:
glm.fit: fitted probabilities numerically 0 or 1 occurred
但我需要BMA而不需要拦截!