我正在尝试在 R 中建模具有许多自变量的二元结果。Ivs中有5个是两个以上水平的因子。当我尝试删除截距时,它仅针对自变量之一进行。我想看看是否有任何水平的系数与该变量中的任何其他系数显着不同(很高兴看到任何水平是否与平均值显着不同)。当我对 glm 进行摘要时,它仅显示与第一级相关的系数值(第一个 IV 除外)。为了重新创建它,我有使用 mtcars 的类似东西的 R 代码:
md <- datasets::mtcars
md <- mutate(md, ncyl = ifelse(cyl==6,"Six Cyl", cyl))
md <- mutate(md, ncyl = ifelse(cyl==4,"Four Cyl",ncyl))
md <- mutate(md, ncyl = ifelse(cyl==8,"Eight Cyl",ncyl))
md <- mutate(md, wgear = ifelse(gear==3,"Three G",gear))
md <- mutate(md, wgear = ifelse(wgear==4,"Four G",wgear))
md <- mutate(md, wgear = ifelse(wgear==5,"Five G",wgear))
md <- mutate(md, wcarb = ifelse(carb==1,"One Carb",carb))
md <- mutate(md, wcarb = ifelse(carb==2,"Two Carb",wcarb))
md <- mutate(md, wcarb = ifelse(carb==3,"Three Carb",wcarb))
md <- mutate(md, wcarb = ifelse(carb==4,"Four Carb",wcarb))
md <- mutate(md, wcarb = ifelse(carb==6,"Six Carb",wcarb))
md <- mutate(md, wcarb = ifelse(carb==8,"Eight Carb",wcarb))
md <- md[,-c(2,10,11)]
model <- glm(mpg~., data = md)
summary(model)
modelint <- glm(mpg~.-1, data = md)
summary(modelint)
因此,summary(modelint)我可以看到所有 3 个可能值 ncyl 的系数值,并且confint(modelint)我至少可以看到所有可能值的置信区间。但是 wgear 和 wcarb 只是按字母顺序与它们的第一级进行比较,而 t 值只是与第一级不同。我知道如果我这样做了,mpg~wgear-1我可以看到他们的比较,但我认为这并没有考虑到所有其他变量。理想情况下,我想看看 1 carb 与 2 carb、3、4、... 和 1 carb 与不是 1 carb 的比较,同时考虑其他变量。有没有比 glm 更好的功能?任何建议将不胜感激!