Results from studies examining inpatient rehabilitation for geriatric patients with respect to various outcomes.

dat.bachmann2010

Format

The data frame contains the following columns:

authorcharacterfirst author of study
yearnumericpublication year
countrynumericcountry where study was conducted
rehabtypecharactertype of rehabilitation (general / orthopaedic)
lohs1numericmean/median length of hospital stay before randomization (days)
lohs2numericmean/median length of hospital stay after randomization (days)
magenumericmean age of participants
ntinumericnumber of participants in the intervention group
ncinumericnumber of participants in the control group
multidimcharactermultidimensional geriatric assessment (yes / no)
assigncharacterassignment to therapy (yes / no)
meetingscharacterintervention team meetings for goal setting
fupcharacterfollow-up after discharge (yes / no)
conccharacterconcealment of allocation (yes / no)
blindcharacterblinding of outcome assessor (yes / no)
ittcharacterintention to treat analysis (yes / no)
outcomecharacteroutcome variable (function, admission, mortality)
timecharactertime of assessment (at discharge, at follow-up)
ornumericodds ratio for functional improvement
lbnumericlower 95% CI bound for the odds ratio
ubnumericupper 95% CI bound for the odds ratio
ainumericnumber of cases in the intervention group
n1inumerictotal number of patients in the intervention group
cinumericnumber of cases in the control group
n2inumerictotal number of patients in the control group

Details

The meta-analysis by Bachmann et al. (2010) assessed the effects of inpatient rehabilitation specifically designed for geriatric patients compared with usual care on functional status, admissions to nursing homes, and mortality. For outcome functional status (outcome=="function"), odds ratios with corresponding confidence interval bounds are provided via variables or, lb, and ub. For outcomes admissions to nursing homes and mortality, the number of cases and the group sizes for the intervention and control groups are given via variables ai, n1i, ci, and n2i.

Riley et al. (2011) used these data in their discussion of prediction intervals in the context of the random-effects model for meta-analysis.

Source

Bachmann, S., Finger, C., Huss, A., Egger, M., Stuck, A. E., & Clough-Gorr, K. M. (2010). Inpatient rehabilitation specifically designed for geriatric patients: Systematic review and meta-analysis of randomised controlled trials. British Medical Journal, 340, c1718. https://doi.org/10.1136/bmj.c1718

References

Riley, R. D., Higgins, J. P. T., & Deeks, J. J. (2011). Interpretation of random effects meta-analyses. British Medical Journal, 342, d549. https://doi.org/10.1136/bmj.d549

Concepts

medicine, odds ratios, risk ratios

Examples

### copy data to 'dat' and examine the data
dat <- dat.bachmann2010
head(dat)
#>      author year country rehabtype lohs1 lohs2 mage nti nci multidim assign meetings fup conc blind
#> 1 Applegate 1990     USA   general    21  23.6 78.8  78  77      yes    yes   weekly  no  yes   yes
#> 2 Applegate 1990     USA   general    21  23.6 78.8  78  77      yes    yes   weekly  no  yes   yes
#> 3 Applegate 1990     USA   general    21  23.6 78.8  78  77      yes    yes   weekly  no  yes   yes
#> 4 Applegate 1990     USA   general    21  23.6 78.8  78  77      yes    yes   weekly  no  yes   yes
#> 5 Applegate 1990     USA   general    21  23.6 78.8  78  77      yes    yes   weekly  no  yes   yes
#> 6 Applegate 1990     USA   general    21  23.6 78.8  78  77      yes    yes   weekly  no  yes   yes
#>   itt   outcome      time   or   lb   ub ai n1i ci n2i
#> 1 yes  function discharge   NA   NA   NA NA  NA NA  NA
#> 2 yes  function  followup 1.11 0.51 2.39 NA  NA NA  NA
#> 3 yes admission discharge   NA   NA   NA  6  78 17  77
#> 4 yes admission  followup   NA   NA   NA  7  78 15  77
#> 5 yes mortality discharge   NA   NA   NA NA  NA NA  NA
#> 6 yes mortality  followup   NA   NA   NA 16  78 19  77

### load metafor package
library(metafor)

### compute log odds ratios and corresponding sampling variances from the
### reported odds ratios and confidence interval bounds
dat <- conv.wald(or, ci.ub=ub, transf=log, data=dat)

### meta-analyze the effects on functional status at discharge
res <- rma(yi, vi, data=dat, method="DL",
           slab=paste0(author, ", ", year),
           subset=outcome=="function"&time=="discharge")
#> Warning: 9 studies with NAs omitted from model fitting.
res
#> 
#> Random-Effects Model (k = 8; tau^2 estimator: DL)
#> 
#> tau^2 (estimated amount of total heterogeneity): 0.0582 (SE = 0.0883)
#> tau (square root of estimated tau^2 value):      0.2413
#> I^2 (total heterogeneity / total variability):   38.25%
#> H^2 (total variability / sampling variability):  1.62
#> 
#> Test for Heterogeneity:
#> Q(df = 7) = 11.3353, p-val = 0.1246
#> 
#> Model Results:
#> 
#> estimate      se    zval    pval   ci.lb   ci.ub      
#>   0.5601  0.1484  3.7740  0.0002  0.2692  0.8510  *** 
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 
predict(res, transf=exp, digits=2)
#> 
#>  pred ci.lb ci.ub pi.lb pi.ub 
#>  1.75  1.31  2.34  1.00  3.05 
#> 

### meta-analyze the effects on functional status at follow-up
res <- rma(yi, vi, data=dat, method="DL",
           slab=paste0(author, ", ", year),
           subset=outcome=="function"&time=="followup")
#> Warning: 5 studies with NAs omitted from model fitting.
res
#> 
#> Random-Effects Model (k = 12; tau^2 estimator: DL)
#> 
#> tau^2 (estimated amount of total heterogeneity): 0.0754 (SE = 0.0696)
#> tau (square root of estimated tau^2 value):      0.2746
#> I^2 (total heterogeneity / total variability):   51.18%
#> H^2 (total variability / sampling variability):  2.05
#> 
#> Test for Heterogeneity:
#> Q(df = 11) = 22.5321, p-val = 0.0206
#> 
#> Model Results:
#> 
#> estimate      se    zval    pval   ci.lb   ci.ub    
#>   0.3043  0.1183  2.5722  0.0101  0.0724  0.5361  * 
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 
predict(res, transf=exp, digits=2)
#> 
#>  pred ci.lb ci.ub pi.lb pi.ub 
#>  1.36  1.08  1.71  0.75  2.44 
#> 

### compute log risk ratios and corresponding sampling variances from the
### reported 2x2 table counts
dat <- escalc(measure="RR", ai=ai, n1i=n1i,
                            ci=ci, n2i=n2i,
                            data=dat, drop00=TRUE)

### meta-analyze the effects on admission to nursing homes at discharge
res <- rma(yi, vi, data=dat, method="DL",
           slab=paste0(author, ", ", year),
           subset=outcome=="admission"&time=="discharge")
#> Warning: 7 studies with NAs omitted from model fitting.
res
#> 
#> Random-Effects Model (k = 10; tau^2 estimator: DL)
#> 
#> tau^2 (estimated amount of total heterogeneity): 0.0189 (SE = 0.0643)
#> tau (square root of estimated tau^2 value):      0.1375
#> I^2 (total heterogeneity / total variability):   13.98%
#> H^2 (total variability / sampling variability):  1.16
#> 
#> Test for Heterogeneity:
#> Q(df = 9) = 10.4624, p-val = 0.3144
#> 
#> Model Results:
#> 
#> estimate      se     zval    pval    ci.lb    ci.ub      
#>  -0.4432  0.1173  -3.7789  0.0002  -0.6731  -0.2133  *** 
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 
predict(res, transf=exp, digits=2)
#> 
#>  pred ci.lb ci.ub pi.lb pi.ub 
#>  0.64  0.51  0.81  0.45  0.91 
#> 

### meta-analyze the effects on admission to nursing homes at follow-up
res <- rma(yi, vi, data=dat, method="DL",
           slab=paste0(author, ", ", year),
           subset=outcome=="admission"&time=="followup")
#> Warning: 4 studies with NAs omitted from model fitting.
res
#> 
#> Random-Effects Model (k = 13; tau^2 estimator: DL)
#> 
#> tau^2 (estimated amount of total heterogeneity): 0.0177 (SE = 0.0331)
#> tau (square root of estimated tau^2 value):      0.1329
#> I^2 (total heterogeneity / total variability):   22.60%
#> H^2 (total variability / sampling variability):  1.29
#> 
#> Test for Heterogeneity:
#> Q(df = 12) = 15.5046, p-val = 0.2150
#> 
#> Model Results:
#> 
#> estimate      se     zval    pval    ci.lb    ci.ub    
#>  -0.1702  0.0830  -2.0505  0.0403  -0.3330  -0.0075  * 
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 
predict(res, transf=exp, digits=2)
#> 
#>  pred ci.lb ci.ub pi.lb pi.ub 
#>  0.84  0.72  0.99  0.62  1.15 
#> 

### meta-analyze the effects on mortality at discharge
res <- rma(yi, vi, data=dat, method="DL",
           slab=paste0(author, ", ", year),
           subset=outcome=="mortality"&time=="discharge")
#> Warning: 6 studies with NAs omitted from model fitting.
res
#> 
#> Random-Effects Model (k = 11; tau^2 estimator: DL)
#> 
#> tau^2 (estimated amount of total heterogeneity): 0 (SE = 0.1110)
#> tau (square root of estimated tau^2 value):      0
#> I^2 (total heterogeneity / total variability):   0.00%
#> H^2 (total variability / sampling variability):  1.00
#> 
#> Test for Heterogeneity:
#> Q(df = 10) = 8.5693, p-val = 0.5734
#> 
#> Model Results:
#> 
#> estimate      se     zval    pval    ci.lb    ci.ub    
#>  -0.3289  0.1392  -2.3633  0.0181  -0.6016  -0.0561  * 
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 
predict(res, transf=exp, digits=2)
#> 
#>  pred ci.lb ci.ub pi.lb pi.ub 
#>  0.72  0.55  0.95  0.55  0.95 
#> 

### meta-analyze the effects on mortality at follow-up
res <- rma(yi, vi, data=dat, method="DL",
           slab=paste0(author, ", ", year),
           subset=outcome=="mortality"&time=="followup")
#> Warning: 2 studies with NAs omitted from model fitting.
res
#> 
#> Random-Effects Model (k = 15; tau^2 estimator: DL)
#> 
#> tau^2 (estimated amount of total heterogeneity): 0 (SE = 0.0211)
#> tau (square root of estimated tau^2 value):      0
#> I^2 (total heterogeneity / total variability):   0.00%
#> H^2 (total variability / sampling variability):  1.00
#> 
#> Test for Heterogeneity:
#> Q(df = 14) = 12.0696, p-val = 0.6007
#> 
#> Model Results:
#> 
#> estimate      se     zval    pval    ci.lb    ci.ub    
#>  -0.1442  0.0580  -2.4852  0.0129  -0.2579  -0.0305  * 
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 
predict(res, transf=exp, digits=2)
#> 
#>  pred ci.lb ci.ub pi.lb pi.ub 
#>  0.87  0.77  0.97  0.77  0.97 
#>