如何从R中的Poisson回归中获得因子每个水平的95%CI的率估计值?

omqzjyyz  于 2023-03-27  发布在  其他
关注(0)|答案(1)|浏览(177)

我在R中运行了一个泊松回归模型,结构如下:

mod <- glm(outcome ~ X + A + B + C + offset(log(time)), data = dat, family = poisson(link = "log"))

其中X是我感兴趣的2水平因子,ABC是其他协变量。
如何从mod中提取X每个水平的比率估计值和95% CI?
我的预期输出将是:X_level1的估计发生率(95% CI)X_level2的估计发生率(95% CI)
先谢谢你!

p5cysglq

p5cysglq1#

假设您指的是Xoutcome的 * 边际 * 效应,即当所有其他协变量保持其平均值时,X的两个水平中的每一个水平上outcome的估计值。为此,您可以使用emmeans包:

library(emmeans)

mod <- glm(outcome ~ X + A + B + C + offset(log(time)), 
           data = dat, family = poisson(link = "log"))

result <- as.data.frame(emmeans(mod, specs = 'X'))

result <- cbind(result[1], exp(result[2]), 
                CI = paste(round(exp(result[[5]]), 3),
                           round(exp(result[[6]]), 3), sep = '-'))

给你

result
#>        X   emmean              CI
#> 1 level1 107.5459 104.587-110.589
#> 2 level2 147.1999 143.957-150.516

所用数据

set.seed(1)

dat <- data.frame(X = factor(sample(c('level1', 'level2'), 100, TRUE)),
                  A = sample(100)/5,
                  B = sample(100)/2, 
                  C = sample(100)/4, 
                  time = 1:100)

dat$outcome <- with(dat, rpois(100, 50 * as.numeric(X) - A + B - C + time))

head(dat)
#>        X   A    B     C time outcome
#> 1 level1 5.6 45.5 19.50    1      85
#> 2 level2 9.6 15.5  9.25    2      94
#> 3 level1 6.6 36.0 10.75    3      94
#> 4 level1 9.0 18.0 20.25    4      43
#> 5 level2 4.2 24.5  0.25    5     137
#> 6 level1 6.2 20.5 22.50    6      31

创建于2023-03-23带有reprex v2.0.2

相关问题