我有几项研究被分析为具有二项式结果的混合模型,并且正在尝试对这些研究进行荟萃分析。例如,一项研究使用了以下分析:
glmer(outcome ~ condition + (1|ID) + (1|week), data = d, family=binomial)
要进行元分析,我相信我需要运行rma.glmm()
metafor 包中的函数。rma.glmm()
需要指定的参数ai
, bi
, ci
, 和di
(2x2 table data),但是 glmer 的输出只给出yi
; 使用数据的实际描述(忽略所有聚类)来填充这些参数似乎违反直觉。是否可以从混合模型生成计数的 2x2 表数据?
或者,是否可以在没有 2x2 表的情况下运行具有效应大小和方差的荟萃分析?根据我的发现,这对于rma.uni()
(对于线性模型)来说是可能的,但对于广义混合模型来说却不是。
数据和分析的微小子集:
d <- structure(list(ID = c("634", "d06", "593", "f6a", "288", "d6a",
"35e", "e19", "97c", "537", "28e", "f4a", "503", "dc4", "1a2",
"c14", "142", "f74", "b7f", "cf7", "ec8", "19e", "ba5", "baa",
"9f6", "4ac", "326", "975", "0fc", "a1d", "fd4", "ab6", "8dc",
"35d", "11f", "52e", "416", "b74", "fef", "6d1", "151", "a37",
"070", "364", "773", "22a", "6dc", "b4e", "16e", "5a3", "fba",
"21a", "d24", "b3b", "979", "9bc", "d51", "d62", "1dc", "d7f",
"7de", "e59", "f0e", "70c", "ef5", "275", "c77", "103", "db7",
"4c3", "c26", "0c2", "bda", "726", "9ac", "645", "0fd", "dd7",
"8d2", "1da", "525", "c5f", "bc7", "caf", "fbb", "034", "adc",
"f3e", "2c2", "8b8"), condition = structure(c(1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L), .Label = c("Control", "Note", "Pre Intervention"
), class = "factor"), outcome = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
1L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L,
0L, 0L, 0L), week = structure(c(27L, 26L, 26L, 27L, 29L, 25L,
27L, 27L, 27L, 26L, 25L, 25L, 26L, 26L, 25L, 28L, 26L, 26L, 28L,
28L, 26L, 27L, 25L, 27L, 27L, 25L, 27L, 28L, 26L, 25L, 28L, 29L,
27L, 30L, 25L, 30L, 28L, 25L, 30L, 30L, 27L, 26L, 26L, 28L, 28L,
27L, 27L, 28L, 28L, 26L, 25L, 28L, 27L, 26L, 25L, 27L, 29L, 26L,
30L, 28L, 21L, 22L, 16L, 18L, 5L, 15L, 24L, 7L, 8L, 5L, 17L,
19L, 12L, 6L, 9L, 14L, 10L, 13L, 2L, 3L, 3L, 15L, 11L, 20L, 1L,
4L, 23L, 8L, 16L, 12L), .Label = c("2017-14", "2017-18", "2017-20",
"2017-21", "2017-29", "2017-38", "2017-39", "2017-44", "2017-45",
"2017-46", "2017-48", "2017-49", "2018-02", "2018-04", "2018-05",
"2018-06", "2018-07", "2018-08", "2018-09", "2018-10", "2018-11",
"2018-12", "2018-14", "2018-16", "2018-18", "2018-19", "2018-20",
"2018-21", "2018-22", "2018-23"), class = "factor")), row.names = c(NA,
-90L), class = "data.frame")
library(lme4)
library(metafor)
summary(glmer(outcome ~ condition + (1|ID) + (1|week), data = d, family=binomial))