R 中的逻辑回归 - 解释分类变量的交互作用

Logistic Regression in R - Interpreting interaction effects for categorical variables

我有一个看起来像这样的数据集。

注意变量A和B是Low/High
的二进制变量 以下代码已经运行在R

logit = glm(y ~ A*B , family = binomial(link='logit') , data=df)
summary(logit)

这是输出

包括 A 和 B 之间的交互作用的原因是我的假设与 A 和 B 的作用不一致,所以我想我应该包括 A 和 B 之间的交互作用,结果毫不奇怪相当重要。
但是我该如何解释这些系数呢?
我知道如何解释 A 或 B 是否是数字,但处理 2 个分类变量很难理解。

期待专家的advices/comments。

非常感谢!

非常感谢。

一般背景:解释逻辑回归系数

首先,要了解更多关于一般解释逻辑回归系数的信息,请查看 this guide for beginners。逻辑回归系数是与预测变量增加 1 个单位相关的结果对数几率的变化。因此,如果您有一个系数 \beta,您可以对它取幂,exp(beta) 以获得比值比。如果 beta = 0exp(beta) = 1,则 OR 为 1,预测变量对响应的几率没有影响。如果 beta > 0,OR 为正,预测变量增加响应的几率。

解释 R 逻辑回归中分类变量的交互系数

现在我们已经了解了背景,我们可以在此处继续对问题进行更具体的回答。

在 R 中,像 glm() 这样带有分类预测变量的线性模型对这些变量使用 factor 数据类型。如果将它们传递给 glm() 时它们是字符格式,它会将它们强制转换为因子。然后在强制转换之后,模型将每个因子转换为一组 n-1 虚拟变量,其中 n 是因子中唯一水平的数量。默认顺序是按字母顺序排列的,因此字母表中排在第一位的因子水平将被视为参考或截距水平。

因此,由于 AB 每个只有两个唯一级别,并且 High 在字母表中排在 Low 之前,所以 AB 本质上将转换为 01 的单个向量,其中 High 是 0,Low 是 1。您可以通过手动设置因子水平排序来更改此行为:df$A <- factor(df$A, levels = c('Low', 'High')).

在您的模型中,AB 之间相互作用的系数表示 Ay 是否为 Terminated 取决于 B(或者等价地,By 的影响取决于 A)。请注意,这还假设二进制的 y 结果变量具有 Active = 0Terminated = 1。这也是因为默认的字母顺序。

模型是

因为 A 为 0 或 1,B 为 0 或 1,除非 A=1 且 B=1,否则上述等式的最后一项将为 0。这对应于两个变量都是 Low 假设您使用的是默认因子编码。我们可以将 1.41 的系数解释为正,表示如果 ALow,则 By 的影响更正,或导致更大的影响y 成为 Terminated 的概率增加。具体来说,如果两者都是 Low,则 Terminated 的几率比其中至少一个不是 Low 的几率高 exp(1.41) = 4.1 倍。

你可以说“如果 A 低,则 B 低对终止概率有积极影响,但如果 A 高,则 B 低对终止概率有负面影响。”那是因为B的主效应<0而交互系数>0.