我正在使用R中的logit link函数运行二项Logistic回归。我的响应是阶乘[0/1]我有两个多级因子预测器 - 让我们称它们为a和b,其中a有4因子等级(a1,a2,a3,a4)和b具有9个因子等级(b1,b2 ...... b9)。因此:
mod <- glm(y~a+b, family=binomial(logit),data=pretend) summary(mod)
模型输出将显示有关模型和系数的所有信息。
摘要输出中缺少a和b(a1和b1)的因子级别。据我所知,它是在&#34;拦截&#34;该模型。我已经读过,如果我想删除截距项并查看这些因子水平的估计值,我可以在模型公式中加上-1或+0,即:
mod2 <- glm(y~a+b-1, family=binomial(logit),data=pretend)
... ... OR mod2&lt; - glm(y~a + b + 0,family =二项式(logit),data = pretend) 摘要(MOD2)
在新模型(mod2)中,截距项随后消失,并且在系数列表中给出变量a的因子水平a1。但是,变量b的因子水平b1仍然缺失,并且假设不存在截距项,那么我如何解释该因子水平的优势比呢?
有人可以向我解释如何获得b1的系数以及为什么会发生这种情况?
谢谢。
答案 0 :(得分:0)
有趣的是a1
被给出了。人们会期望一个因子水平作为“参考”,因此在输出中没有任何OR(因为它是1.0)。
我认为b1
是你的参考,因此是隐藏的,因此是1.0。
答案 1 :(得分:0)
您可以尝试调整对比度。我最喜欢的是
options(contrasts = c('contr.sum','contr.poly'))
这里的假设是a_i的总和= 0和b_i的总和= 0(虽然我刚刚发现这可能不是GLM的情况)对于那些对比,它通常会留下最后一个a和b因为它们可以通过分别取另一个a或b的相反值来恢复(因为它们总和为0)。
答案 2 :(得分:0)
为什么要删除截距项并获取a1
的系数?
具有因子变量的逻辑回归模型拟合第一因子水平作为参考。此因子级别的对数赔率(系数)设置为1.0。
当比较因子(或组)之间的对数几率时,所得因子水平的所有对数赔率都是指基数。因此,您可以计算不同组之间的比值比,并预测事件是否更可能发生(与基本因子水平相比)。
如果a
中没有参考级别,我不知道什么作为a
级别的参考。如果a
的引用为b1
,那么您如何理解这一点?有没有提到删除拦截有意义? (真的很好奇,还没有听说过这种方法)
顺便说一下,你不需要截距来计算因子水平之间的比值比。以下是计算随机二项式glm
的优势比的小例子:
library(oddsratio)
fit.glm <- glm(admit ~ gre + gpa + rank, data = data.glm, family = "binomial") # fit model
# Calculate OR for specific increment step of continuous variable
calc.oddsratio.glm(data = data.glm, model = fit.glm, incr = list(gre = 380, gpa = 5))
predictor oddsratio CI.low (2.5 %) CI.high (97.5 %) increment
1 gre 2.364 1.054 5.396 380
2 gpa 55.712 2.229 1511.282 5
3 rank2 0.509 0.272 0.945 Indicator variable
4 rank3 0.262 0.132 0.512 Indicator variable
5 rank4 0.212 0.091 0.471 Indicator variable