dat.pritz1997.Rd
Results from 14 studies on the effectiveness of hyperdynamic therapy for treating cerebral vasospasm.
dat.pritz1997
The data frame contains the following columns:
study | numeric | study number |
authors | character | study authors |
xi | numeric | number of patients that improved with hyperdynamic therapy |
ni | numeric | total number of patients treated |
As described in Zhou et al. (1999), "hyperdynamic therapy refers to induced hypertension and hypervolaemia (volume expansion) to treat ischaemic symptoms due to vasospasm, and the success of this therapy is defined as clinical improvement in terms of neurologic deficits." For each study that was included in the meta-analysis, the dataset includes information on the number of patients that improved under this form of therapy and the total number of patients that were treated. The goal of the meta-analysis is to estimate the true (average) success rate of hyperdynamic therapy.
Zhou, X.-H., Brizendine, E. J., & Pritz, M. B. (1999). Methods for combining rates from several studies. Statistics in Medicine, 18(5), 557–566. https://doi.org/10.1002/(SICI)1097-0258(19990315)18:5<557::AID-SIM53>3.0.CO;2-F
Pritz M. B., Zhou, X.-H., & Brizendine, E. J. (1996). Hyperdynamic therapy for cerebral vasospasm: A meta-analysis of 14 studies. Journal of Neurovascular Disease, 1, 6–8.
Pritz, M. B. (1997). Treatment of cerebral vasospasm due to aneurysmal subarachnoid hemorrhage: Past, present, and future of hyperdynamic therapy. Neurosurgery Quarterly, 7(4), 273–285.
medicine, single-arm studies, proportions
### copy data into 'dat' and examine data
dat <- dat.pritz1997
dat
#> study authors xi ni
#> 1 1 Giannotta et al. 16 17
#> 2 2 Haraguchi and Ebina 10 12
#> 3 3 Swift and Solomon 4 8
#> 4 4 Kassell et al. 43 58
#> 5 5 Tanabe et al. 10 10
#> 6 6 Awad et al. 25 42
#> 7 7 Finn et al. 13 14
#> 8 8 Hadeishi et al. 12 12
#> 9 9 Otsubo et al. 22 41
#> 10 10 Muizelaar and Becker 4 5
#> 11 11 Rosenstein et al. 5 6
#> 12 12 Levy et al. 18 23
#> 13 13 Shimoda et al. 58 68
#> 14 14 Solomon et al. 6 10
### load metafor package
library(metafor)
### computation of "weighted average" in Zhou et al. (1999), Table IV
dat <- escalc(measure="PR", xi=xi, ni=ni, data=dat, add=0)
theta.hat <- sum(dat$ni * dat$yi) / sum(dat$ni)
se.theta.hat <- sqrt(sum(dat$ni^2 * dat$vi) / sum(dat$ni)^2)
ci.lb <- theta.hat - 1.96 * se.theta.hat
ci.ub <- theta.hat + 1.96 * se.theta.hat
round(c(estimate = theta.hat, se = se.theta.hat, ci.lb = ci.lb, ci.ub = ci.ub), 4)
#> estimate se ci.lb ci.ub
#> 0.7546 0.0224 0.7106 0.7986
### this is identical to an equal-effects model with sample size weights
rma(yi, vi, weights=ni, method="EE", data=dat)
#> Warning: There are outcomes with non-positive sampling variances.
#> Warning: Cannot compute Q-test, I^2, or H^2 when there are non-positive sampling variances in the data.
#>
#> Equal-Effects Model (k = 14)
#>
#> Model Results:
#>
#> estimate se zval pval ci.lb ci.ub
#> 0.7546 0.0224 33.6491 <.0001 0.7106 0.7986 ***
#>
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
### compute sampling variances under the assumption of homogeneity
dat <- escalc(measure="PR", xi=xi, ni=ni, data=dat, add=0, vtype="AV")
dat
#>
#> study authors xi ni yi vi
#> 1 1 Giannotta et al. 16 17 0.9412 0.0109
#> 2 2 Haraguchi and Ebina 10 12 0.8333 0.0154
#> 3 3 Swift and Solomon 4 8 0.5000 0.0231
#> 4 4 Kassell et al. 43 58 0.7414 0.0032
#> 5 5 Tanabe et al. 10 10 1.0000 0.0185
#> 6 6 Awad et al. 25 42 0.5952 0.0044
#> 7 7 Finn et al. 13 14 0.9286 0.0132
#> 8 8 Hadeishi et al. 12 12 1.0000 0.0154
#> 9 9 Otsubo et al. 22 41 0.5366 0.0045
#> 10 10 Muizelaar and Becker 4 5 0.8000 0.0370
#> 11 11 Rosenstein et al. 5 6 0.8333 0.0309
#> 12 12 Levy et al. 18 23 0.7826 0.0081
#> 13 13 Shimoda et al. 58 68 0.8529 0.0027
#> 14 14 Solomon et al. 6 10 0.6000 0.0185
#>
### fit equal-effects model (same estimate, but SE is slightly different)
rma(yi, vi, data=dat, method="EE")
#>
#> Equal-Effects Model (k = 14)
#>
#> I^2 (total heterogeneity / total variability): 65.22%
#> H^2 (total variability / sampling variability): 2.87
#>
#> Test for Heterogeneity:
#> Q(df = 13) = 37.3750, p-val = 0.0004
#>
#> Model Results:
#>
#> estimate se zval pval ci.lb ci.ub
#> 0.7546 0.0238 31.6615 <.0001 0.7079 0.8013 ***
#>
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
### under the assumption of homogeneity, the sum of independent binomial
### counts also follows a binomial distribution; this approach yields the same
### estimate and SE as above
agg <- escalc(measure="PR", xi=sum(dat$xi), ni=sum(dat$ni))
summary(agg)
#>
#> yi vi sei zi pval ci.lb ci.ub
#> 1 0.7546 0.0006 0.0238 31.6615 <.0001 0.7079 0.8013
#>
### could also compute an 'exact' CI based on the Clopper-Pearson method
binom.test(sum(dat$xi), sum(dat$ni))
#>
#> Exact binomial test
#>
#> data: sum(dat$xi) and sum(dat$ni)
#> number of successes = 246, number of trials = 326, p-value < 2.2e-16
#> alternative hypothesis: true probability of success is not equal to 0.5
#> 95 percent confidence interval:
#> 0.7041627 0.8003469
#> sample estimates:
#> probability of success
#> 0.7546012
#>
### logistic regression model
res <- rma.glmm(measure="PLO", xi=xi, ni=ni, data=dat, method="EE")
res
#>
#> Equal-Effects Model (k = 14)
#>
#> Tests for Heterogeneity:
#> Wld(df = 13) = 25.0979, p-val = 0.0224
#> LRT(df = 13) = 42.2324, p-val < .0001
#>
#> Model Results:
#>
#> estimate se zval pval ci.lb ci.ub
#> 1.1233 0.1287 8.7277 <.0001 0.8710 1.3756 ***
#>
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
predict(res, transf=transf.ilogit)
#>
#> pred ci.lb ci.ub
#> 0.7546 0.7050 0.7983
#>
### the results above suggest that the true proportions may be heterogeneous
### random-effects model with raw proportions
dat <- escalc(measure="PR", xi=xi, ni=ni, data=dat)
res <- rma(yi, vi, data=dat)
predict(res)
#>
#> pred se ci.lb ci.ub pi.lb pi.ub
#> 0.7968 0.0423 0.7138 0.8797 0.5306 1.0629
#>
### random-effects model with logit transformed proportions
dat <- escalc(measure="PLO", xi=xi, ni=ni, data=dat)
res <- rma(yi, vi, data=dat)
predict(res, transf=transf.ilogit)
#>
#> pred ci.lb ci.ub pi.lb pi.ub
#> 0.7575 0.6605 0.8337 0.4661 0.9179
#>
### mixed-effects logistic regression model
res <- rma.glmm(measure="PLO", xi=xi, ni=ni, data=dat)
predict(res, transf=transf.ilogit)
#>
#> pred ci.lb ci.ub pi.lb pi.ub
#> 0.7984 0.6924 0.8746 0.4426 0.9518
#>