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