[英]Odds ratio and confidence intervals from glmer output
我制作了一個模型,該模型着眼於許多變量及其對妊娠結局的影響。 結果是分組二進制。 一群動物將有34個懷孕和3個空,接下來將有20個懷孕和4個空等等。
我使用glmer
函數對這些數據建模,其中y是妊娠結果(懷孕或空白)。
mclus5 <- glmer(y~adg + breed + bw_start + year + (1|farm),
data=dat, family=binomial)
我得到所有通常的系數等輸出但是對於解釋我想將其轉換為每個系數的優勢比和置信區間。
在過去的邏輯回歸模型中,我使用了以下代碼
round(exp(cbind(OR=coef(mclus5),confint(mclus5))),3)
這將很好地提供我想要的東西,但它似乎不適用於我運行的模型。
有誰知道我可以通過R為我的模型獲得此輸出的方式?
唯一真正的區別是你必須使用fixef()
而不是coef()
來提取固定效應系數( coef()
給出每組的估計系數)。
我將用lme4
包中的內置示例進行lme4
。
library("lme4")
gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
data = cbpp, family = binomial)
固定效應系數和置信區間,對數 - 賠率表:
cc <- confint(gm1,parm="beta_") ## slow (~ 11 seconds)
ctab <- cbind(est=fixef(gm1),cc)
(如果你想要更快但更准確的Wald置信區間,你可以使用confint(gm1,parm="beta_",method="Wald")
;這相當於@ Gorka的答案,但稍微方便一些。)
Exponentiate得到比值比:
rtab <- exp(ctab)
print(rtab,digits=3)
## est 2.5 % 97.5 %
## (Intercept) 0.247 0.149 0.388
## period2 0.371 0.199 0.665
## period3 0.324 0.165 0.600
## period4 0.206 0.082 0.449
一個稍微簡單/更通用的解決方案:
library(broom.mixed)
tidy(gm1,conf.int=TRUE,exponentiate=TRUE,effects="fixed")
對於Wald間隔,或為配置文件置信區間添加conf.method="profile"
。
我相信還有另一種更快的方法(如果你的結果不太准確)。
來自: http : //www.ats.ucla.edu/stat/r/dae/melogit.htm
首先,我們得到估計的置信區間
se <- sqrt(diag(vcov(mclus5)))
# table of estimates with 95% CI
tab <- cbind(Est = fixef(mclus5), LL = fixef(mclus5) - 1.96 * se, UL = fixef(mclus5) + 1.96 * se)
然后比值比為95%CI
print(exp(tab), digits=3)
我認為其他選擇只是使用包emmeans
:
library(emmeans)
data.frame(confint(pairs(emmeans(fit, ~ factor_name,type="response"))))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.