# What type of meta-analysis do i need here?

I'm looking for the name of a statistical technique that can perform the following analysis for me.

I want to do a regression looking at the effect of the mean of age of a sample, predicting the percentage of children from the sample that pass a task. I can do this easily via doing a normal regression of mean age => % children that pass task, but is there a better way of doing this analysis?

A technique that will work in SPSS or R is good for me :)

Thanks!

• Could you explain the sense in which this is a "meta-analysis" instead of a standard regression problem?
– whuber
Apr 23, 2015 at 17:42
• Well, the samples differ in sample size too. Standard regression would not take that into account, is there a meta-analytic approach which could take sample size into account to make the regression more powerful, and weight groups with a larger sample size more than small sample size groups. Apr 23, 2015 at 18:04

If I understand you correctly, you have multiple samples for which you know the mean age, the percentage that pass a task, and the sample size. So, you can easily calculate the actual number of children that pass the task in each sample. In that case, you could analyze these data using logistic regression. Here is an example, analyzed in R:

mage <- c(6, 8, 9, 11, 11, 12, 13, 15)
xi <- c(3, 13, 4, 12, 12, 5, 10, 22)
ni <- c(28, 31, 20, 20, 28, 14, 18, 37)


These made-up data look like this:

Now we can fit a logistic regression model to these data with:

summary(glm(cbind(xi,ni-xi) ~ mage, family='binomial'))


This yields:

Call:
glm(formula = cbind(xi, ni - xi) ~ mage, family = "binomial")

Deviance Residuals:
Min       1Q   Median       3Q      Max
-1.3894  -0.9942  -0.2090   0.5609   1.6286

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.61092    0.60499  -4.316 1.59e-05 ***
mage         0.20985    0.05365   3.912 9.17e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 26.4329  on 7  degrees of freedom
Residual deviance:  9.7293  on 6  degrees of freedom
AIC: 41.187

Number of Fisher Scoring iterations: 4


So, for these data, there is a statistically significant increase in the log odds of passing the task as the mean age of the sample increases.

Now there may be overdispersion in such data. One way of modeling this is via a mixed-effects logistic regression model. This can be done with the lme4 package. This will fit such a model:

library(lme4)
id <- 1:length(xi)
summary(glmer(cbind(xi,ni-xi) ~ mage + (1 | id), family='binomial', nAGQ=7))


This yields:

Generalized linear mixed model fit by maximum likelihood (Adaptive
Gauss-Hermite Quadrature, nAGQ = 7) [glmerMod]
Family: binomial  ( logit )
Formula: cbind(xi, ni - xi) ~ mage + (1 | id)

AIC      BIC   logLik deviance df.resid
15.7     15.9     -4.8      9.7        5

Scaled residuals:
Min      1Q  Median      3Q     Max
-1.1192 -0.8742 -0.1753  0.4892  1.4364

Random effects:
Groups Name        Variance Std.Dev.
id     (Intercept) 0.02967  0.1722
Number of obs: 8, groups:  id, 8

Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.66660    0.69286  -3.849 0.000119 ***
mage         0.21442    0.06125   3.501 0.000464 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
(Intr)
mage -0.971


The additional variance component is slightly positive, but the conclusion is the same.

Since you mentioned meta-analysis -- one can indeed think of this as a sort of meta-analysis of proportions. When adding predictors to a meta-analytical model, the commonly used term for the analysis is meta-regression.

In fact, the metafor package provides exactly the functionality illustrated above. So, if you want to think of your data in such a way, then you could do:

library(metafor)
rma.glmm(measure="PLO", xi=xi, ni=ni, mods = ~ mage, method="FE")
rma.glmm(measure="PLO", xi=xi, ni=ni, mods = ~ mage, method="ML")


The first call to rma.glmm() will in essence reproduce the results from the logistic regression model, while the second call provides the results from the mixed-effects logistic model. The output for the latter looks like this:

Mixed-Effects Model (k = 8; tau^2 estimator: ML)

tau^2 (estimated amount of residual heterogeneity):     0.0297
tau (square root of estimated tau^2 value):             0.1722
I^2 (residual heterogeneity / unaccounted variability): 12.51%
H^2 (unaccounted variability / sampling variability):   1.14

Tests for Residual Heterogeneity:
Wld(df = 6) = 9.0825, p-val = 0.1690
LRT(df = 6) = 9.7293, p-val = 0.1365

Test of Moderators (coefficient(s) 2):
QM(df = 1) = 12.2566, p-val = 0.0005

Model Results:

estimate      se     zval    pval    ci.lb    ci.ub
intrcpt   -2.6666  0.6928  -3.8487  0.0001  -4.0246  -1.3086  ***
mage       0.2144  0.0612   3.5009  0.0005   0.0944   0.3345  ***

---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1


As you can see, these are the same results. Based on such a model, you could plot the results as a forest plot. Maybe something like this:

res <- rma.glmm(measure="PLO", xi=xi, ni=ni, mods = ~ mage, method="ML")
forest(res, xlim=c(-8,6), atransf=transf.ilogit, ilab=mage, ilab.xpos=-5)
text(-8, 10, "Study", pos=4)
text(-5, 10, "Mean Age")
text( 6, 10, "Proportion [95% CI]", pos=2)


The light-gray polygons are the predicted proportions for each study/sample.

• Thanks very much for this answer, out of the many times i've used stack exchange i've never had such a thorough answer! Before reading this i tried nls() to fit a logistic curve to the data, since its easy to interpret. However, I am looking into adding moderating variables into the analysis, if i decided to do so, would the meta-regression be a more powerful method than a simple (logistic) regression? Apr 23, 2015 at 20:11
• Glad to hear you found my answer useful. The meta-regression approach I have shown is logistic regression (standard and a mixed-effects version), so I am not sure I understand your question. Apr 23, 2015 at 20:24