# \donttest{
library(metaplus)
# perform meta-analysis for mag studies, which have no outliers
# fit standard normal random-effect model and print summary
mag.meta <- metaplus(yi, sei, slab = study, data = mag)
summary(mag.meta)
# repeat, but this time plot the profile likelihood diagnostic plot using plotci
mag.meta <- metaplus(yi, sei, slab = study, plotci = TRUE, cores = 1, data = mag)
# plot a forest plot with exponential transform, so that the odds ratios are plotted
plot(mag.meta, atransf = exp, at = log(c(.01, .1, 1, 10, 100)), xlab = "Odds Ratio",
cex = 0.75)
# repeat for t-distribution random effects
mag.tdist <- metaplus(yi, sei, slab = study,
random = "t-dist", cores = 1, data = mag)
summary(mag.tdist)
# use parametric bootstrap to test for presence of outliers
summary(testOutliers(mag.tdist, cores = 1))
# repeat for robust mixture random effects
mag.mix <- metaplus(yi, sei, slab = study,
random = "mixture", cores = 1, data = mag)
summary(mag.mix)
# use parametric bootstrap to test for presence of outliers
summary(testOutliers(mag.mix, cores = 1))
# perform meta-analysis for CDP studies
# where there is one outlier
cdp.meta <- metaplus(yi, sei, slab = study, cores = 1, data = cdp)
summary(cdp.meta)
cdp.tdist <- metaplus(yi, sei, slab = study,
random = "t-dist", cores = 1, data = cdp)
summary(cdp.tdist)
summary(testOutliers(cdp.tdist, cores = 1))
cdp.mix <- metaplus(yi, sei, slab = study,
random = "mixture", cores = 1, data = cdp)
summary(cdp.mix)
summary(testOutliers(cdp.mix, cores = 1))
# extract and plot outlier probabilities
cdp.mix.outlierProbs <- outlierProbs(cdp.mix)
plot(cdp.mix.outlierProbs)
# produce forest plot with summary for all 3 models, showing narrower confidence
# intervals for robust models
plot(cdp.meta, extrameta = list(cdp.tdist, cdp.mix), xlab = "Standardised Mean Difference")
# effect of exercise on depression with covariate of length of study
# fit the 3 models
exercise.meta <- metaplus(smd, sqrt(varsmd),
mods = duration, slab = study, cores = 1, data = exercise)
summary(exercise.meta)
exercise.mix <- metaplus(smd, sqrt(varsmd),
mods = duration, slab = study, random = "mixture",
cores = 1, data = exercise)
summary(exercise.mix)
exercise.testOutliers <- testOutliers(exercise.mix, cores = 1)
summary(exercise.testOutliers)
# identify possible outliers
exercise.outlierProbs <- outlierProbs(exercise.mix)
plot(exercise.outlierProbs)
# centre duration at different values to obtain predictions at 4, 8 and 12 weeks
exercise$duration4 <- exercise$duration-4
exercise$duration8 <- exercise$duration-8
exercise$duration12 <- exercise$duration-12
# fit the different models, giving each an appropriate label
exercise.nodurn <- metaplus(smd, sqrt(varsmd),
label = "Random Mixture (No Duration)", slab = study,
random = "mixture", cores = 1, data = exercise)
exercise.wk4 <- metaplus(smd, sqrt(varsmd),
mods = duration4, label = "Random Mixture (Week 4)",
slab = study, random = "mixture", cores = 1, data = exercise)
exercise.wk8 <- metaplus(smd, sqrt(varsmd),
mods = duration8, label = "Random Mixture (Week 8)",
slab = study, random = "mixture", cores = 1, data = exercise)
exercise.wk12 <- metaplus(smd, sqrt(varsmd),
mods = duration12, label = "Random Mixture (Week 12)",
slab = study, random = "mixture", cores = 1, data = exercise)
# produce forest plot with summary for each model with robust mixture model at different weeks
plot(exercise.nodurn, extrameta = list(exercise.wk4, exercise.wk8,
exercise.wk12), xlab = "Standardised mean difference")
# }
Run the code above in your browser using DataLab