如何在混合模型逻辑回归荟萃分析中使用glmer输出作为rma.glmm输入?

如何在混合模型逻辑回归荟萃分析中使用glmer输出作为rma.glmm输入?,r,statistics,logistic-regression,mixed-models,metafor,R,Statistics,Logistic Regression,Mixed Models,Metafor,我有几项研究被分析为具有二项式结果的混合模型,我试图对这些研究进行荟萃分析。例如,一项研究使用了这种分析: glmer(outcome ~ condition + (1|ID) + (1|week), data = d, family=binomial) d <- structure(list(ID = c("634", "d06", "593", "f6a", "288", "

我有几项研究被分析为具有二项式结果的混合模型,我试图对这些研究进行荟萃分析。例如,一项研究使用了这种分析:

glmer(outcome ~ condition + (1|ID) + (1|week), data = d, family=binomial)
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")
要进行元分析,我认为我需要在metafor包中运行函数
rma.glmm()
rma.glmm()
需要指定参数
ai
bi
ci
、和
di
(2x2表格数据),但是glmer的输出仅给出
yi
;使用数据的实际描述(忽略所有集群)来填充这些参数似乎违反直觉。是否可以从混合模型生成2x2计数表数据

或者,是否可以使用效应大小和方差进行荟萃分析,而不使用2x2表?根据我的发现,这对于
rma.uni()
(对于线性模型)是可能的,但对于广义混合模型则不可能

数据和分析的极小子集:

glmer(outcome ~ condition + (1|ID) + (1|week), data = d, family=binomial)
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")

祝贺您的第一篇堆栈文章,以及包含数据!这是一个目前很难回答的问题,因为它同时提出了很多问题。试着把注意力集中在文章上,并把问题放在代码的各个部分之间,以确定你所问的问题。这将使你的问题更清楚,并确保你得到有用和及时的答案。回答这样一个复杂的问题可能需要多篇文章。