R 如何在logistic回归中计算交互项作为优势比?

R 如何在logistic回归中计算交互项作为优势比?,r,glm,logistic-regression,R,Glm,Logistic Regression,我在R中使用固定效应逻辑回归,使用glm函数。我读过一些关于解释广义线性模型中的交互项的书。当使用对数赔率时,模型是线性的,相互作用项可以用与OLS回归相同的方式解释。当系数被指数化为优势比时,情况就不再是这样了。因为我的听众更熟悉优势比,所以我想用这个指标来报告我的结果 是否有一种预先准备好的方法,用R计算交互项作为优势比?如果没有,谁能告诉我应该怎么做 编辑1:我在下面提供了一个可复制的示例 set.seed(1234) dat <- data.frame( Y = fact

我在R中使用固定效应逻辑回归,使用
glm
函数。我读过一些关于解释广义线性模型中的交互项的书。当使用对数赔率时,模型是线性的,相互作用项可以用与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))
set.seed(1234)

dat如果您谈论的是对
glm()
输出的解释,并且保持在对数优势标度上,那么它与您对
lm()
输出的解释完全类似。在这两种情况下,最好讨论预测,而不是试图单独解释系数。当你要求一种“预先准备好的使用R计算交互项的优势比的方法”时,并不清楚你真正的要求是什么。您知道吗,对于
lm()
模型输出,有这样一种“预先准备好的计算交互项的方法”

加州大学洛杉矶分校的教程说,你应该询问一种观察概率的方法,在R回归函数中,答案是“预测”:

这是线性预测值之和的集合,即在该数据集中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'):


请考虑包括一个小的,以便我们能够更好地理解和更容易回答你的问题。你问如何计算系数?@ RAWRNO,我的理解是,交互作用系数的幂系数不能解释为与OLS中的交互项相同的方式(而在日志赔率可以)。我试图用正确的方法计算优势比中的相互作用项。
p/q=exp(beta_I)
,其中beta是线性预测因子eta的系数(这并不取决于beta是否来自相互作用项)。@user3114046,你是说这不是问题?上述模型中的指数交互作用项将提供
性别
人群
之间几率差异的影响?谢谢,这肯定有帮助。我想我仍然很困惑,我怎么知道你上面例子中优势比的分母是什么(如果第一组预测值是指数化的)?如果我使用
exp(coef(fm1))
,那么
sexmale:populationKenya
的1.46系数告诉我(我认为)在法国和肯尼亚,男性和女性之间的几率差异有46%。从优势比预测(1.61-0.86)-(0.71-0.55)=0.59,我没有得到相同的值。基线(系数)是复合因子参考类别内x1的平均值,在这种情况下,由于因子水平的词汇默认顺序,女性:法国。我认为女性:法国将是默认基线。我仍然不清楚基线[exp(-0.596)=0.551]与其他优势比之间的关系?我必须执行某种转换吗?
> 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 
> 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