The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
ProMetaR performs meta-analysis of proportions using study-level event counts and sample sizes.
The package supports transformation-based meta-analysis, random-effects estimation, heterogeneity assessment, prediction intervals, subgroup analysis, meta-regression, leave-one-out sensitivity analysis, influence diagnostics, forest plots, funnel plots, small-study effect diagnostics, and an optional binomial generalized linear mixed model interface.
A meta-analysis of proportions can be performed using the number of events and the corresponding sample size from each study.
The following example uses four hypothetical studies.
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
#> ProMetaR: Meta-analysis of proportions
#> Studies:4
#> Transformation:logit
#> Random-effects estimator:REML
#>
#> Random-effects proportion:0.136 (0.203, NA)
#> Heterogeneity: I2 = 10.8%, tau2 = 0.009, Q p = 0.33879A summary of the fitted model can be obtained with:
summary_prop(fit)
#> studies transform method pooled_proportion lower upper tau2 I2 Q
#> 1 4 logit REML 0.1361 0.2034 NA 0.0086 10.8286 3.3643
#> Q_df Q_p prediction_lower prediction_upper
#> 1 3 0.3388 0.1292 0.2134Heterogeneity statistics can be obtained using:
The logit transformation is the default transformation used by
meta_prop().
Alternative transformations can be examined as sensitivity analyses,
particularly when proportions are close to zero or one. The
prop_transform() function uses study-level event counts and
sample sizes.
prop_transform(
events = dat$events,
n = dat$n,
method = "logit"
)
#> events n proportion transformed variance se
#> 1 12 100 0.1200000 -1.992430 0.09469697 0.3077287
#> 2 25 150 0.1666667 -1.609438 0.04800000 0.2190890
#> 3 18 120 0.1500000 -1.734601 0.06535948 0.2556550
#> 4 40 200 0.2000000 -1.386294 0.03125000 0.1767767
prop_transform(
events = dat$events,
n = dat$n,
method = "arcsine"
)
#> events n proportion transformed variance se
#> 1 12 100 0.1200000 0.3537416 0.002500000 0.05000000
#> 2 25 150 0.1666667 0.4205343 0.001666667 0.04082483
#> 3 18 120 0.1500000 0.3976994 0.002083333 0.04564355
#> 4 40 200 0.2000000 0.4636476 0.001250000 0.03535534
prop_transform(
events = dat$events,
n = dat$n,
method = "raw"
)
#> events n proportion transformed variance se
#> 1 12 100 0.1200000 0.1200000 0.0010560000 0.03249615
#> 2 25 150 0.1666667 0.1666667 0.0009259259 0.03042903
#> 3 18 120 0.1500000 0.1500000 0.0010625000 0.03259601
#> 4 40 200 0.2000000 0.2000000 0.0008000000 0.02828427The default random-effects model uses the REML estimator.
fit_reml <- meta_prop(
events = dat$events,
n = dat$n,
studlab = dat$study,
method = "REML"
)
fit_reml
#> ProMetaR: Meta-analysis of proportions
#> Studies:4
#> Transformation:logit
#> Random-effects estimator:REML
#>
#> Random-effects proportion:0.136 (0.203, NA)
#> Heterogeneity: I2 = 10.8%, tau2 = 0.009, Q p = 0.33879Alternative between-study variance estimators can be used for sensitivity analyses.
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
#> ProMetaR: Meta-analysis of proportions
#> Studies:4
#> Transformation:logit
#> Random-effects estimator:DL
#>
#> Random-effects proportion:0.137 (0.203, NA)
#> Heterogeneity: I2 = 10.8%, tau2 = 0.007, Q p = 0.33879
fit_pm
#> ProMetaR: Meta-analysis of proportions
#> Studies:4
#> Transformation:logit
#> Random-effects estimator:PM
#>
#> Random-effects proportion:0.137 (0.203, NA)
#> Heterogeneity: I2 = 10.8%, tau2 = 0.006, Q p = 0.33879A prediction interval accounts for between-study heterogeneity and describes the expected range of the underlying proportion in a future comparable study.
A forest plot displays the individual study proportions and the pooled estimate.
A funnel plot can be used as a graphical assessment of possible small-study effects.
Funnel-plot asymmetry can have several possible causes and should be interpreted cautiously, particularly when the number of studies is small.
Subgroup analyses can be performed using a categorical variable with one value for each study.
dat$group <- c(
"Group A",
"Group A",
"Group B",
"Group B"
)
sub_fit <- subgroup_prop(
fit_reml,
subgroup = dat$group
)
sub_fit
#> ProMetaR subgroup meta-analysis
#>
#> [Group A]
#> ProMetaR: Meta-analysis of proportions
#> Studies:2
#> Transformation:logit
#> Random-effects estimator:REML
#>
#> Random-effects proportion:0.110 (0.200, NA)
#> Heterogeneity: I2 = 2.7%, tau2 = 0.002, Q p = 0.31064
#>
#> [Group B]
#> ProMetaR: Meta-analysis of proportions
#> Studies:2
#> Transformation:logit
#> Random-effects estimator:REML
#>
#> Random-effects proportion:0.137 (0.234, NA)
#> Heterogeneity: I2 = 20.4%, tau2 = 0.012, Q p = 0.26246Each subgroup is analysed separately using the ProMetaR meta-analysis framework.
Study-level moderators can be examined using meta-regression.
moderators <- data.frame(
region = factor(
c("North", "North", "South", "South")
),
sample_size = dat$n
)
mr <- metareg_prop(
fit_reml,
moderators = moderators
)
mr
#> estimate SE z p
#> (Intercept) -2.416169749 0.19352811 -12.4848514 9.031177e-36
#> regionSouth 0.035416803 0.10621581 0.3334419 7.388007e-01
#> sample_size 0.005073008 0.00136396 3.7193231 1.997574e-04Meta-regression should be interpreted cautiously, particularly when only a small number of studies are available.
The influence of individual studies can be assessed by repeating the meta-analysis after omitting each study in turn.
loo <- loo_prop(fit_reml)
loo
#> study estimate lower upper I2
#> Study 1 0.145479260913066 0.214984329065548 <NA> 0
#> Study 2 0.119723716277262 0.216841860623377 <NA> 40.4393833065782
#> Study 3 0.131178586321893 0.216833984695 <NA> 33.135620478939
#> Study 4 0.116699143280373 0.189980919892914 <NA> 0Influence measures based on the leave-one-out analyses can be obtained using:
influence_prop(fit_reml)
#> study estimate_loo change I2_loo
#> 1 Study 1 0.1454793 0.009334010 0.00000
#> 2 Study 2 0.1197237 -0.016421535 40.43938
#> 3 Study 3 0.1311786 -0.004966665 33.13562
#> 4 Study 4 0.1166991 -0.019446108 0.00000Large changes in the pooled estimate following removal of an individual study may indicate substantial influence of that study on the overall result.
ProMetaR provides an Egger-type regression diagnostic for exploratory assessment of small-study effects.
bias_prop(fit_reml)
#> ProMetaR small-study effect diagnostic
#> Intercept: -7.111918
#> p-value: 0.00016927This diagnostic should be interpreted cautiously, especially when the meta-analysis contains only a small number of studies.
The Freeman-Tukey double-arcsine transformation is available using
transform = "pft".
fit_pft <- meta_prop(
events = dat$events,
n = dat$n,
studlab = dat$study,
transform = "pft"
)
fit_pft
#> ProMetaR: Meta-analysis of proportions
#> Studies:4
#> Transformation:pft
#> Random-effects estimator:REML
#>
#> Random-effects proportion:0.134 (0.200, NA)
#> Heterogeneity: I2 = 8.9%, tau2 = 0.001, Q p = 0.34885The Freeman-Tukey double-arcsine method is supplied primarily as a sensitivity analysis because its back-transformation can be sensitive to study sample sizes.
ProMetaR provides an optional interface to a binomial generalized
linear mixed model through the metafor package.
The following example demonstrates the GLMM interface without executing the optional model during vignette rebuilding.
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:fit <- meta_prop(
events = dat$events,
n = dat$n,
studlab = dat$study,
method = "REML",
transform = "logit"
)
summary_prop(fit)
#> studies transform method pooled_proportion lower upper tau2 I2 Q
#> 1 4 logit REML 0.1361 0.2034 NA 0.0086 10.8286 3.3643
#> Q_df Q_p prediction_lower prediction_upper
#> 1 3 0.3388 0.1292 0.2134
prop_heterogeneity(fit)
#> $Q
#> [1] 3.364308
#>
#> $df
#> [1] 3
#>
#> $p
#> [1] 0.3387921
#>
#> $I2
#> [1] 10.8286
#>
#> $H2
#> [1] 1.121436
#>
#> $tau2
#> [1] 0.008584995
#>
#> $tau
#> [1] 0.09265525
predict_prop(fit)
#> [1] 0.1291623 0.2134249
forest_prop(fit)Additional sensitivity analyses can then be performed:
loo_prop(fit)
#> study estimate lower upper I2
#> Study 1 0.145479260913066 0.214984329065548 <NA> 0
#> Study 2 0.119723716277262 0.216841860623377 <NA> 40.4393833065782
#> Study 3 0.131178586321893 0.216833984695 <NA> 33.135620478939
#> Study 4 0.116699143280373 0.189980919892914 <NA> 0
influence_prop(fit)
#> study estimate_loo change I2_loo
#> 1 Study 1 0.1454793 0.009334010 0.00000
#> 2 Study 2 0.1197237 -0.016421535 40.43938
#> 3 Study 3 0.1311786 -0.004966665 33.13562
#> 4 Study 4 0.1166991 -0.019446108 0.00000
bias_prop(fit)
#> ProMetaR small-study effect diagnostic
#> Intercept: -7.111918
#> p-value: 0.00016927Meta-analysis of proportions requires consideration of study design, sample size, event frequency, transformation choice, and between-study heterogeneity.
For proportions close to zero or one, results should preferably be examined using more than one appropriate analytical approach. The choice of transformation and between-study variance estimator can affect the pooled estimate.
The optional binomial GLMM provides an alternative model-based sensitivity analysis.
ProMetaR provides a focused workflow for meta-analysis of proportions and prevalence, including transformation-based random-effects models, heterogeneity assessment, prediction intervals, subgroup analysis, meta-regression, leave-one-out sensitivity analysis, influence diagnostics, forest plots, funnel plots, small-study effect diagnostics, and an optional binomial GLMM interface.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.