我使用glm
函数在R中使用固定效果逻辑回归。我已经完成了关于在广义线性模型中解释交互项的一些阅读。当使用对数赔率时,模型是线性的,并且交互项可以与OLS回归相同的方式解释。当系数被指数化为优势比时,情况就不再如此。由于我的受众更熟悉优势比率,因此我想使用该指标报告我的结果。
是否存在使用R计算交互项作为比值比的预先计算方式?如果不是,任何人都可以告诉我应该如何做到这一点?
编辑1:我在下面提供了一个可重现的例子。
set.seed(1234)
dat <- data.frame(
Y = factor(round(runif(60))),
x1 = rnorm(60, 10, 3),
sex = sample(c("male", "female"), size = 60, prob = c(.4, .6), replace = TRUE),
population = sample(c("France", "Kenya", "Thailand"), size = 60, prob = c(.3, .45, .25), replace = TRUE)
)
fm1 <- glm(Y ~ x1 + sex * population, family = binomial(link = "logit"), data = dat)
summary(fm1)
# odds ratios
exp(coef(fm1))
编辑2:进一步澄清。
我的问题背后的动机来自以下对UCLA统计网站的逻辑回归互动的解释:
http://www.ats.ucla.edu/stat/stata/seminars/interaction_sem/interaction_sem.htm
通过阅读本文,我的理解是,已经转换为优势比或概率的交互术语的解释与对数赔率单位中的相同术语的解释不同。我想我是否想要了解我是否只需要在转换为优势比时更改我对交互项的解释,或者除了取幂之外我是否还需要进行一些计算?
答案 0 :(得分:2)
如果您正在讨论glm()
输出的解释并保留在对数范围内,那么它与您解释lm()
的输出完全类似。在这两种情况下,最好谈论预测,而不是试图单独解释系数。当你要求“使用R计算交互条件作为优势比的预先烹饪方式”时,不清楚你真正要求的是什么。您是否知道lm()
模型输出的“预先计算交互项的方法”?
加州大学洛杉矶分校的教程说你应要求一种查看概率的方法,而在R回归函数中答案是“预测”:
?predict.glm
这是线性预测变量之和的集合,即此数据集中x1样本均值的分类特征组合的截距和系数之和:
> data.frame( expand.grid(sex=unique(dat$sex), population=unique(dat$population)), x1=mean(dat$x1))
sex population x1
1 female Kenya 9.380473
2 male Kenya 9.380473
3 female France 9.380473
4 male France 9.380473
5 female Thailand 9.380473
6 male Thailand 9.380473
> predict( fm1, newdata=data.frame( expand.grid(sex=unique(dat$sex), population=unique(dat$population)), x1=mean(dat$x1)))
1 2 3 4 5 6
-0.1548962 0.4757249 -0.5963092 -0.3471242 0.8477717 0.2029501
如果需要比值比,那些可以被取幂,但是你应该知道比值比的分母是多少。这些是概率(通过type ='response'获得):
> predict( fm1, newdata=data.frame( expand.grid(sex=unique(dat$sex), population=unique(dat$population)), x1=mean(dat$x1)), type="response")
1 2 3 4 5 6
0.4613532 0.6167379 0.3551885 0.4140800 0.7000995 0.5505641