## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>",
                      fig.width = 6, fig.height = 4)
set.seed(20260821)

## ----gaussian-data------------------------------------------------------------
dat <- data.frame(
  study = paste0("Study ", 1:6),
  estimate = c(-0.80, -0.30, 0.10, 0.70, 1.10, -0.50),
  moderator = c(0, 0, 1, 1, 0, 1),
  vi = c(0.04, 0.05, 0.03, 0.06, 0.04, 0.05),
  ni = c(100, 90, 120, 80, 110, 95)
 )
dat

## ----gaussian-fit-------------------------------------------------------------
library(metaGLMM)

fit <- metaGLMM(
  estimate ~ moderator,
  data = dat,
  vi = dat$vi,
  ni = dat$ni,
  tau2 = NA,
  family = gaussian(link = "identity"),
  tau2_var = TRUE,
  fast = TRUE
)

fit
summary(fit)

## ----gaussian-methods---------------------------------------------------------
coef(fit)
vcov(fit)
fit$tau2
fit$tau
confint(fit, method = "wald")
stopifnot(is.finite(fit$tau), fit$tau > 0)

## ----model-objects------------------------------------------------------------
formula(fit)
terms(fit)
model.frame(fit)
colnames(model.matrix(fit))

## ----gamma-fit----------------------------------------------------------------
gamma_dat <- data.frame(
  study = paste0("Study ", 1:6),
  mean = c(9.6, 9.9, 13.8, 16.5, 8.2, 14.6),
  sd = c(0.7, 8.3, 4.2, 7.4, 4.3, 2.2),
  n = c(20, 25, 23, 18, 75, 20),
  treatment = c(1, 1, 1, 1, 1, 0)
)
gamma_dat$vi <- (gamma_dat$sd / gamma_dat$mean)^2

gamma_fit <- metaGLMM(
  mean ~ treatment,
  data = gamma_dat,
  vi = gamma_dat$vi,
  ni = gamma_dat$n,
  tau2 = NA,
  family = Gamma(link = "log"),
  tau2_var = TRUE,
  start_tau2 = 0.1,
  fast = TRUE
)
summary(gamma_fit)
stopifnot(is.finite(gamma_fit$tau), gamma_fit$tau > 0)

