R lme4多水平模型计算连续预测变量最值间概率尺度效应量及置信区间
解决方法
你需要先将emmeans的估计结果转换到概率(响应)尺度,再计算两个取值的差值,即可得到概率尺度下的效应量(风险差)及对应置信区间,具体操作如下:
library(emmeans) # 提取x=1和x=3的估计值,转换到概率尺度 emm <- emmeans(m, "x", at = list(x = c(1, 3))) |> regrid(trans = "response") # 计算x=3与x=1的概率差值,无需多重比较校正 contrast(emm, list(`x=3 减 x=1 概率差` = c(-1, 1)), adjust = "none")
结果说明
输出中的estimate列就是你需要的概率尺度效应量,对应模拟数据的结果会是-0.5,代表x从最小值1升到最大值3时,y取pos的概率下降0.5;asymp.LCL和asymp.UCL列就是对应95%置信区间。
如果你需要的是比值比(OR)类型的效应量,可以直接在logit尺度做差值后取指数:
emm_logit <- emmeans(m, "x", at = list(x = c(1, 3))) contrast(emm_logit, list(`x=3 比 x=1 OR` = c(-1, 1)), adjust = "none") |> exp(type = "response")
内容的提问来源于stack exchange,提问作者st4co4
相关产品推荐
相关产品推荐

