## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----basic-analysis-----------------------------------------------------------
library(ProMetaR)

dat <- data.frame(
  study = paste0("Study ", 1:4),
  events = c(12, 25, 18, 40),
  n = c(100, 150, 120, 200)
)

fit <- meta_prop(
  events = dat$events,
  n = dat$n,
  studlab = dat$study
)

fit

## ----summary------------------------------------------------------------------
summary_prop(fit)

## ----heterogeneity------------------------------------------------------------
prop_heterogeneity(fit)

## ----transformations----------------------------------------------------------
prop_transform(
  events = dat$events,
  n = dat$n,
  method = "logit"
)

prop_transform(
  events = dat$events,
  n = dat$n,
  method = "arcsine"
)

prop_transform(
  events = dat$events,
  n = dat$n,
  method = "raw"
)

## ----reml---------------------------------------------------------------------
fit_reml <- meta_prop(
  events = dat$events,
  n = dat$n,
  studlab = dat$study,
  method = "REML"
)

fit_reml

## ----alternative-estimators---------------------------------------------------
fit_dl <- meta_prop(
  events = dat$events,
  n = dat$n,
  studlab = dat$study,
  method = "DL"
)

fit_pm <- meta_prop(
  events = dat$events,
  n = dat$n,
  studlab = dat$study,
  method = "PM"
)

fit_dl
fit_pm

## ----prediction---------------------------------------------------------------
predict_prop(fit_reml)

## ----forest, fig.width=7, fig.height=5----------------------------------------
forest_prop(fit_reml)

## ----funnel, fig.width=6, fig.height=5----------------------------------------
funnel_prop(fit_reml)

## ----subgroup-----------------------------------------------------------------
dat$group <- c(
  "Group A",
  "Group A",
  "Group B",
  "Group B"
)

sub_fit <- subgroup_prop(
  fit_reml,
  subgroup = dat$group
)

sub_fit

## ----metareg------------------------------------------------------------------
moderators <- data.frame(
  region = factor(
    c("North", "North", "South", "South")
  ),
  sample_size = dat$n
)

mr <- metareg_prop(
  fit_reml,
  moderators = moderators
)

mr

## ----leave-one-out------------------------------------------------------------
loo <- loo_prop(fit_reml)

loo

## ----influence----------------------------------------------------------------
influence_prop(fit_reml)

## ----bias---------------------------------------------------------------------
bias_prop(fit_reml)

## ----pft----------------------------------------------------------------------
fit_pft <- meta_prop(
  events = dat$events,
  n = dat$n,
  studlab = dat$study,
  transform = "pft"
)

fit_pft

## ----glmm, eval=FALSE---------------------------------------------------------
# fit_glmm <- meta_prop_glmm(
#   events = dat$events,
#   n = dat$n,
#   studlab = dat$study
# )
# 
# fit_glmm
# 
# The GLMM approach provides an alternative modelling framework based
# directly on the binomial distribution and can be useful as a sensitivity
# analysis, particularly for proportions close to zero or one.
# 
# ## Complete workflow
# 
# A basic ProMetaR workflow can be summarized as follows:
# 

## ----complete-workflow--------------------------------------------------------
fit <- meta_prop(
  events = dat$events,
  n = dat$n,
  studlab = dat$study,
  method = "REML",
  transform = "logit"
)

summary_prop(fit)

prop_heterogeneity(fit)

predict_prop(fit)

forest_prop(fit)

## ----sensitivity--------------------------------------------------------------
loo_prop(fit)

influence_prop(fit)

bias_prop(fit)

