[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")
forest(pes.summary, xlim=c(0,1), pscale=1,
       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.diamond="maroon", col.diamond.lines="maroon",pooled.totals=FALSE,

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

More information about the R-sig-meta-analysis mailing list