[R-meta] Meta-analysis with GLMM
Joao Afonso
jot@|on@o @end|ng |rom gm@||@com
Mon Feb 17 13:47:01 CET 2020
Dear all,
I hope you all had a great weekend.
I have been sending some questions to the r-project because of my
meta-analysis on prevalence data. Recently I can across a paper
calling attention to the eventual misleading results from a
meta-analysis using the double arcsine method as a results of a
substantial range of sample sizes across the different included
studies (Schwarzer al. 2019). This seems to be the case with the
studies for my meta-analysis which made my alarms sound. After reading
the paper I am not confident I want to use the double arcsine method
and would rather go for the suggested GLMM.
I am creating the code using the rma.glmm function but am unsure if
this would be the way to build it. From reading the paper I understood
that the GLMM uses the logit transformation. If so the code for
generating the meta-analysis (and forest plot) would be something as
per below?
pes.glmm=rma.glmm(xi=nlameanimal, ni=ssizeanimal,
data=prevalence_2020_nomv, method = "ML", measure = "PLO")
pes=predict(pes.glmm, transf=transf.ilogit)
print(pes.glmm, digits=4)
confint(pes.glmm, digits=4)
print(pes, digits=4)
When using it I got the following output (the confint function doesn't
seem to accept a glm object):
Random-Effects Model (k = 33; tau^2 estimator: ML)
tau^2 (estimated amount of total heterogeneity): 0.9006
tau (square root of estimated tau^2 value): 0.9490
I^2 (total heterogeneity / total variability): 99.8914%
H^2 (total variability / sampling variability): 921.2084
Tests for Heterogeneity:
Wld(df = 32) = 17471.1364, p-val < .0001
LRT(df = 32) = 24922.9943, p-val < .0001
Model Results:
estimate se zval pval ci.lb ci.ub
-0.9838 0.1692 -5.8145 <.0001 -1.3154 -0.6522 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> confint(pes.glmm, digits=4)
Error in confint.rma.glmm(pes.glmm, digits = 4) :
Method not available for objects of class "rma.glmm".
> print(pes, digits=4)
pred ci.lb ci.ub cr.lb cr.ub
0.2721 0.2116 0.3425 0.0535 0.7121
I have also produced the corresponding forest plot based on the
metaprop function:
pes.summary=metaprop(nlameanimal, ssizeanimal, author,
data=prevalence_2020_nomv, sm="PLOGIT", method = "GLMM",
method.tau="ML", method.ci="NAsm")
pes.summary
forest(pes.summary, xlim=c(0,1), pscale=1,
rightcols=FALSE,
leftcols=c("studlab", "event", "n", "effect", "ci"),
leftlabs=c("Study", "Cases", "Total", "Prevalence", "95% C.I."),
xlab="Prevalence of Lameness in British Dairy Cattle", smlab="",
weight.study="random", squaresize=0.5, col.square="navy",
col.square.lines="navy",
col.diamond="maroon", col.diamond.lines="maroon",pooled.totals=FALSE,
comb.fixed=FALSE,
fs.hetstat=10,
print.tau2=TRUE,
print.Q=TRUE,
print.pval.Q=TRUE,
print.I2=TRUE,
digits=2,
sortvar=precision)
dev.off()
Many thanks for all the help. Wishing all a great week,
--
João Afonso
DVM, MSc Veterinary Epidemiology
PhD Student
Department of Infection and Global Health
University of Liverpool
+351914812305
More information about the R-sig-meta-analysis
mailing list