## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>",
                      fig.width = 6, fig.height = 4)
set.seed(20260821)
library(metaGLMM)

## ----data---------------------------------------------------------------------
binary_dat <- data.frame(
  study = factor(rep(paste0("Study ", 1:6), each = 2)),
  treatment = rep(c(0, 1), 6),
  events = c(20, 60, 25, 20, 30, 25, 15, 55, 35, 15, 25, 70),
  ni = rep(c(100, 90, 110, 95, 105, 120), each = 2)
)
binary_dat$y <- binary_dat$events / binary_dat$ni
binary_dat$vi <- 1 / (binary_dat$ni * binary_dat$y * (1 - binary_dat$y))
binary_dat

## ----fit----------------------------------------------------------------------
binary_fit <- metaGLMM(
  y ~ treatment,
  data = binary_dat,
  vi = binary_dat$vi,
  ni = binary_dat$ni,
  tau2 = NA,
  family = binomial(link = "logit"),
  tau2_var = TRUE,
  re_group = binary_dat$study,
  trt = "treatment",
  fast = TRUE,
  ghq_Q = 40L
)

summary(binary_fit)
coef(binary_fit)
confint(binary_fit, parm = "treatment", method = "wald")
stopifnot(is.finite(binary_fit$tau), binary_fit$tau > 0)

## ----forest-------------------------------------------------------------------
binary_contrasts <- as_metafor_data(binary_fit)
binary_contrasts

forest(binary_fit,
       xlab = "Log odds ratio",
       ci_methods = c("Wald", "profile", "SBC"))

