The metafor Package

A Meta-Analysis Package for R

User Tools

Site Tools


analyses:vanhouwelingen2002

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
analyses:vanhouwelingen2002 [2021/10/22 15:29] Wolfgang Viechtbaueranalyses:vanhouwelingen2002 [2022/08/03 17:52] (current) Wolfgang Viechtbauer
Line 39: Line 39:
 </code> </code>
  
-==== Fixed-Effects Model ====+==== Equal-Effects Model ====
  
-The first model considered is the fixed-effects model based on the log odds ratios. The same model can be fitted with:+The first model considered is the equal-effects model based on the log odds ratios. The same model can be fitted with:
 <code rsplus> <code rsplus>
-res <- rma(yi, vi, data=dat, method="FE")+res <- rma(yi, vi, data=dat, method="EE")
 res res
 </code> </code>
 <code output> <code output>
-Fixed-Effects Model (k = 13)+Equal-Effects Model (k = 13) 
 + 
 +I^2 (total heterogeneity / total variability):   92.65% 
 +H^2 (total variability / sampling variability):  13.60
  
 Test for Heterogeneity: Test for Heterogeneity:
Line 54: Line 57:
 Model Results: Model Results:
  
-estimate       se     zval     pval    ci.lb    ci.ub +estimate      se      zval    pval    ci.lb    ci.ub 
- -0.4361   0.0423 -10.3190   <.0001  -0.5190  -0.3533      ***+ -0.4361  0.0423  -10.3190  <.0001  -0.5190  -0.3533  ***
  
 --- ---
-Signif. codes: ***’ 0.001 **’ 0.01 *’ 0.05 .’ 0.1 ‘ ’ 1+Signif. codes: '***0.001 '**0.01 '*0.05 '.0.1 ' ' 1
 </code> </code>
 For easier interpretation, these results can be back-transformed to the odds ratio scale with: For easier interpretation, these results can be back-transformed to the odds ratio scale with:
Line 120: Line 123:
 </code> </code>
 <code output> <code output>
-       estimate   ci.lb   ci.ub  +       estimate   ci.lb   ci.ub 
-tau^2    0.3025  0.1151  0.8937  +tau^2    0.3025  0.1151  0.8937 
-tau      0.5500  0.3393  0.9454  +tau      0.5500  0.3393  0.9454 
-I^2(%)  91.2283 79.8303 96.8485 +I^2(%)  91.2283 79.8303 96.8485
 H^2     11.4003  4.9579 31.7310 H^2     11.4003  4.9579 31.7310
 </code> </code>
Line 167: Line 170:
 <code rsplus> <code rsplus>
 res <- rma(measure="OR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat, method="ML") res <- rma(measure="OR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat, method="ML")
-labbe(res, xlim=c(-7,-1), ylim=c(-7,-1), xlab="ln(odds) not-vaccinated group", ylab="ln(odds) vaccinated group")+labbe(res, xlim=c(-7,-1), ylim=c(-7,-1), 
 +      xlab="ln(odds) not-vaccinated group", ylab="ln(odds) vaccinated group")
 </code> </code>
 The dashed line indicates the estimated effect based on the model. The dashed line indicates the estimated effect based on the model.
Line 216: Line 220:
 Since there is no overlap in the data used to calculate these arm-specific outcomes, the observed outcomes are (conditionally) independent. However, the corresponding true outcomes are likely to be correlated. The bivariate model allows us to estimate the variance and correlation of the true outcomes in the two arms: Since there is no overlap in the data used to calculate these arm-specific outcomes, the observed outcomes are (conditionally) independent. However, the corresponding true outcomes are likely to be correlated. The bivariate model allows us to estimate the variance and correlation of the true outcomes in the two arms:
 <code rsplus> <code rsplus>
-res <- rma.mv(yi, vi, mods = ~ group - 1, random = ~ group | trial, struct="UN", data=dat.long, method="ML")+res <- rma.mv(yi, vi, mods = ~ group - 1, 
 +              random = ~ group | trial, struct="UN", 
 +              data=dat.long, method="ML")
 res res
 </code> </code>
Line 254: Line 260:
 We can directly obtain the estimated (mean) log odds ratio from this model by not removing the intercept: We can directly obtain the estimated (mean) log odds ratio from this model by not removing the intercept:
 <code rsplus> <code rsplus>
-res <- rma.mv(yi, vi, mods = ~ group, random = ~ group | trial, struct="UN", data=dat.long, method="ML")+res <- rma.mv(yi, vi, mods = ~ group, 
 +              random = ~ group | trial, struct="UN", 
 +              data=dat.long, method="ML")
 </code> </code>
 The last part of the output is then: The last part of the output is then:
Line 278: Line 286:
  
 <code rsplus> <code rsplus>
-res <- rma.mv(yi, vi, mods = ~ group - 1, random = ~ group | trial, struct="UN", data=dat.long, method="ML"+res <- rma.mv(yi, vi, mods = ~ group - 1, 
-reg <- matreg(y=2, x=1, R=res$G, cov=TRUE, means=coef(res), n=res$g.levels.comb.k) +              random = ~ group | trial, struct="UN", 
 +              data=dat.long, method="ML"
 +reg <- matreg(y=2, x=1, R=res$G, cov=TRUE, means=coef(res), n=res$g.levels.comb.k)
 reg reg
 </code> </code>
 <code output> <code output>
-         estimate      se     tval  df    pval    ci.lb    ci.ub  +         estimate      se     tval  df    pval    ci.lb    ci.ub 
-intrcpt   -1.8437  0.3265  -5.6477  11  0.0001  -2.5623  -1.1252  ***  +intrcpt   -1.8437  0.3265  -5.6477  11  0.0001  -2.5623  -1.1252  *** 
-CON        0.7300  0.0749   9.7467  11  <.0001   0.5651   0.8948  *** +CON        0.7300  0.0749   9.7467  11  <.0001   0.5651   0.8948  ***
  
 --- ---
Line 293: Line 303:
 Then Figure 5 in the paper (p. 605) can be recreated with: Then Figure 5 in the paper (p. 605) can be recreated with:
 <code rsplus> <code rsplus>
-tmp <- rma(measure="OR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat, method="FE") +tmp <- rma(measure="OR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat, method="EE") 
-labbe(tmp, xlim=c(-8,0), ylim=c(-8,0), xlab="ln(odds) not-vaccinated group", ylab="ln(odds) vaccinated group", lty=c("dotted", "blank"), grid=TRUE)+labbe(tmp, xlim=c(-8,0), ylim=c(-8,0), 
 +      xlab="ln(odds) not-vaccinated group", ylab="ln(odds) vaccinated group", 
 +      lty=c("dotted", "blank"), grid=TRUE)
 points(coef(res)[1], coef(res)[2], pch=19, cex=3) points(coef(res)[1], coef(res)[2], pch=19, cex=3)
 abline(a=reg$tab$beta[1], b=reg$tab$beta[2], lwd=3) abline(a=reg$tab$beta[1], b=reg$tab$beta[2], lwd=3)
Line 319: Line 331:
  
 <code rsplus> <code rsplus>
-res <- rma.mv(yi, vi, mods = ~ group - 1, random = ~ group | trial, struct="UN", data=dat.long, method="ML", cvvc="varcov", control=list(nearpd=TRUE))+res <- rma.mv(yi, vi, mods = ~ group - 1, 
 +              random = ~ group | trial, struct="UN", 
 +              data=dat.long, method="ML", cvvc="varcov", control=list(nearpd=TRUE))
 </code> </code>
  
Line 390: Line 404:
 The bivariate meta-regression model can be fitted with: The bivariate meta-regression model can be fitted with:
 <code rsplus> <code rsplus>
-res <- rma.mv(yi, vi, mods = ~ group + group:I(ablat-33) - 1, random = ~ group | trial, struct="UN", data=dat.long, method="ML")+res <- rma.mv(yi, vi, mods = ~ group + group:I(ablat-33) - 1, 
 +              random = ~ group | trial, struct="UN", 
 +              data=dat.long, method="ML")
 res res
 </code> </code>
Line 430: Line 446:
 The difference in slopes can be directly obtained with: The difference in slopes can be directly obtained with:
 <code rsplus> <code rsplus>
-res <- rma.mv(yi, vi, mods = ~ group*I(ablat-33), random = ~ group | trial, struct="UN", data=dat.long, method="ML")+res <- rma.mv(yi, vi, mods = ~ group*I(ablat-33), 
 +              random = ~ group | trial, struct="UN", 
 +              data=dat.long, method="ML")
 </code> </code>
 The results are the same as before, except for the last part, which is now equal to: The results are the same as before, except for the last part, which is now equal to:
analyses/vanhouwelingen2002.txt · Last modified: 2022/08/03 17:52 by Wolfgang Viechtbauer