Data on the effect of Rosiglitazone on infarction risk and mortality.

dat.nissen2007

Format

The data frame contains the following columns:

studycharacterstudy identifier
phasefactorstudy phase
treatmentcharactertreatment group medication
controlcharactercontrol group medication
weeksnumericfollow-up duration (weeks)
treat.totalnumerictotal number of patients in the treatment group
treat.infarctionnumericnumber of patients with myocardial infarction in the treatment group
treat.deathnumericnumber of deaths in the treatment group
cont.totalnumerictotal number of patients in the control group
cont.infarctionnumericnumber of patients with myocardial infarction in the control group
cont.deathnumericnumber of deaths in the control group

Details

Nissen and Wolski (2007) performed a systematic literature review aiming for randomized controlled trials (RCTs) investigating the effects of Rosiglitazone (Avandia) in comparison to a control treatment, and with a follow-up duration of at least 24 weeks. 42 studies were included. A meta-analysis was performed to quantify the treatment effect on the risks of myocardial infarction and cardiovascular death in terms of the associated odds ratio (OR).

The data set features a number of “zero” trials (no event observed in one of the treatment groups) as well as “double-zero” trials (no event in either treatment group), which poses a challenge for some analysis methods. The original analysis was a common-effect analysis based on the Peto method (see the rma.peto help and the example code below). The data set as well as its original analysis have subsequently been discussed by other investigators (e.g., Diamond, Bax, & Kaul, 2007; Ruecker & Schumacher, 2008; Friedrich, Beyene, & Adhikari, 2009; Nissen & Wolski, 2010). Jackson et al. (2018) later surveyed a range of (random-effects) models that may be applicable in this context; see also the examples below.

Source

Nissen, S. E., & Wolski, K. (2007). Effect of Rosiglitazone on the risk of myocardial infarction and death from cardiovascular causes. New England Journal of Medicine, 356(24), 2457-2471. https://doi.org/10.1056/NEJMoa072761

Author

Christian Röver, christian.roever@med.uni-goettingen.d

References

Diamond, G. A., Bax, L., & Kaul, S. (2007). Uncertain effects of Rosiglitazone on the risk for myocardial infarction and cardiovascular death. Annals of Internal Medicine, 147(8), 578–581. https://doi.org/10.7326/0003-4819-147-8-200710160-00182

Rücker, G., & Schumacher, M. (2008). Simpson’s paradox visualized: The example of the Rosiglitazone meta-analysis. BMC Medical Research Methodology, 8, 34. https://doi.org/10.1186/1471-2288-8-34

Friedrich, J. O., Beyene, J., & Adhikari, N. K. J. (2009). Rosiglitazone: Can meta-analysis accurately estimate excess cardiovascular risk given the available data? Re-analysis of randomized trials using various methodologic approaches. BMC Research Notes, 2, 5. https://doi.org/10.1186/1756-0500-2-5

Nissen, S. E., & Wolski, K. (2010). Rosiglitazone revisited: An updated meta-analysis of risk for myocardial infarction and cardiovascular mortality. Archives of Internal Medicine, 170(14), 1191–1201. https://doi.org/10.1001/archinternmed.2010.207

Jackson, D., Law, M., Stijnen, T., Viechtbauer, W., & White, I. R. (2018). A comparison of seven random-effects models for meta-analyses that estimate the summary odds ratio. Statistics in Medicine, 37(7), 1059–1085. https://doi.org/10.1002/sim.7588

Concepts

medicine, cardiology, odds ratios, Peto's method, generalized linear models

Examples

dat.nissen2007
#>             study phase                               treatment                              control
#> 1       49653/011   III                           rosiglitazone                              placebo
#> 2       49653/020   III                           rosiglitazone                            glyburide
#> 3       49653/024   III                           rosiglitazone                              placebo
#> 4       49653/093   III rosiglitazone with or without metformin                            metformin
#> 5       49653/094   III             rosiglitazone and metformin                            metformin
#> 6          100684    IV             rosiglitazone and glyburide                            glyburide
#> 7       49653/143    IV             rosiglitazone and glyburide                            glyburide
#> 8       49653/211    IV            rosiglitazone and usual care                           usual care
#> 9       49653/284    IV             rosiglitazone and metformin                            metformin
#> 10     712753/008    IV              rosiglitazoneand metformin                            metformin
#> 11      AVM100264    IV             rosiglitazone and metformin           metformin and sulfonylurea
#> 12 BRL 49653C/185    IV rosiglitazone with or without metformin usual care with or without metformin
#> 13  BRL 49653/336    IV                           rosiglitazone                              placebo
#> 14  BRL 49653/347    IV               rosiglitazone and insulin                              insulin
#> 15      49653/015   III          rosiglitazone and sulfonylurea                         sulfonylurea
#> 16      49653/079   III rosiglitazone with or without glyburide                            glyburide
#> 17      49653/080   III                           rosiglitazone                            glyburide
#> 18      49653/082   III               rosiglitazone and insulin                              insulin
#> 19      49653/085   III               rosiglitazone and insulin                              insulin
#> 20      49653/095   III               rosiglitazone and insulin                              insulin
#> 21      49653/097   III                           rosiglitazone                            glyburide
#> 22      49653/125   III          rosiglitazone and sulfonylurea                         sulfonylurea
#> 23      49653/127   III             rosiglitazone and glyburide                            glyburide
#> 24      49653/128   III                           rosiglitazone                              placebo
#> 25      49653/134   III                           rosiglitazone                              placebo
#> 26      49653/135   III             rosiglitazone and glipizide                            glipizide
#> 27      49653/136   III                           rosiglitazone                              placebo
#> 28      49653/145   III            rosiglitazone and gliclazide                           glyclazide
#> 29      49653/147   III           rosiglitazone and sufonylruea                         sulfonylurea
#> 30      49653/162   III             rosiglitazone and glyburide                            glyburide
#> 31      49653/234   III           rosiglitazone and glimepiride                          glimepiride
#> 32      49653/330   III                           rosiglitazone                              placebo
#> 33      49653/331   III                           rosiglitazone                              placebo
#> 34      49653/137   III             rosiglitazone and metformin              glyburide and metformin
#> 35  SB-712753/002   III             rosiglitazone and metformin                            metformin
#> 36  SB-712753/003   III             rosiglitazone and metformin                            metformin
#> 37  SB-712753/007   III rosiglitazone with or without metformin                            metformin
#> 38  SB-712753/009   III     rosiglitazone, metformin and isulin                              insulin
#> 39      49653/132    II          rosiglitazone and sulfonylurea                         sulfonylurea
#> 40      AVA100193    II                           rosiglitazone                              placebo
#> 41          DREAM   III                           rosiglitazone                              placebo
#> 42          ADOPT   III                           rosiglitazone               metformin or glyburide
#>    weeks treat.total treat.infarction treat.death cont.total cont.infarction cont.death
#> 1     24         357                2           1        176               0          0
#> 2     52         391                2           0        207               1          0
#> 3     26         774                1           0        185               1          0
#> 4     26         213                0           0        109               1          0
#> 5     26         232                1           1        116               0          0
#> 6     52          43                0           0         47               1          0
#> 7     24         121                1           0        124               0          0
#> 8     52         110                5           3        114               2          2
#> 9     24         382                1           0        384               0          0
#> 10    48         284                1           0        135               0          0
#> 11    52         294                0           2        302               1          1
#> 12    32         563                2           0        142               0          0
#> 13    52         278                2           0        279               1          1
#> 14    24         418                2           0        212               0          0
#> 15    24         395                2           2        198               1          0
#> 16    26         203                1           1        106               1          1
#> 17   156         104                1           0         99               2          0
#> 18    26         212                2           1        107               0          0
#> 19    26         138                3           1        139               1          0
#> 20    26         196                0           1         96               0          0
#> 21   156         122                0           0        120               1          0
#> 22    26         175                0           0        173               1          0
#> 23    26          56                1           0         58               0          0
#> 24    28          39                1           0         38               0          0
#> 25    28         561                0           1        276               2          0
#> 26   104         116                2           2        111               3          1
#> 27    26         148                1           2        143               0          0
#> 28    26         231                1           1        242               0          0
#> 29    26          89                1           0         88               0          0
#> 30    26         168                1           1        172               0          0
#> 31    26         116                0           0         61               0          0
#> 32    52        1172                1           1        377               0          0
#> 33    52         706                0           1        325               0          0
#> 34    32         204                1           0        185               2          1
#> 35    24         288                1           1        280               0          0
#> 36    32         254                1           0        272               0          0
#> 37    32         314                1           0        154               0          0
#> 38    24         162                0           0        160               0          0
#> 39    24         442                1           1        112               0          0
#> 40    24         394                1           1        124               0          0
#> 41   156        2635               15          12       2634               9         10
#> 42   208        1456               27           2       2895              41          5

library(metafor)

############################################################
# reproduce original "Peto" analyses

# infarction
ma01 <- rma.peto(ai=treat.infarction, ci=cont.infarction,
                 n1i=treat.total, n2i=cont.total,
                 slab=study, data=dat.nissen2007)
#> Warning: Some yi/vi values are NA.
ma01
#> 
#> Equal-Effects Model (k = 42)
#> 
#> I^2 (total heterogeneity / total variability):  0.00%
#> H^2 (total variability / sampling variability): 0.79
#> 
#> Test for Heterogeneity: 
#> Q(df = 37) = 29.3607, p-val = 0.8102
#> 
#> Model Results (log scale):
#> 
#> estimate      se    zval    pval   ci.lb   ci.ub 
#>   0.3565  0.1663  2.1431  0.0321  0.0305  0.6825 
#> 
#> Model Results (OR scale):
#> 
#> estimate   ci.lb   ci.ub 
#>   1.4283  1.0309  1.9788 
#> 

# mortality
ma02 <- rma.peto(ai=treat.death, ci=cont.death,
                 n1i=treat.total, n2i=cont.total,
                 slab=study, data=dat.nissen2007)
#> Warning: Some yi/vi values are NA.
ma02
#> 
#> Equal-Effects Model (k = 42)
#> 
#> I^2 (total heterogeneity / total variability):  0.00%
#> H^2 (total variability / sampling variability): 0.49
#> 
#> Test for Heterogeneity: 
#> Q(df = 22) = 10.7495, p-val = 0.9781
#> 
#> Model Results (log scale):
#> 
#> estimate      se    zval    pval    ci.lb   ci.ub 
#>   0.4947  0.2627  1.8834  0.0596  -0.0201  1.0095 
#> 
#> Model Results (OR scale):
#> 
#> estimate   ci.lb   ci.ub 
#>   1.6400  0.9801  2.7443 
#> 

############################################################
# reproduce "Fixed, IV (CC)" analyses
# from Diamond/Bax/Kaul (2007), Table 1

# infarction
ma03 <- rma.uni(measure="OR", method="FE",
                drop00=TRUE,  # (exclude "double-zeroes")
                ai=treat.infarction, ci=cont.infarction,
                n1i=treat.total, n2i=cont.total,
                slab=study, data=dat.nissen2007)
#> Warning: 4 studies with NAs omitted from model fitting.
ma03
#> 
#> Fixed-Effects Model (k = 38)
#> 
#> I^2 (total heterogeneity / total variability):   0.00%
#> H^2 (total variability / sampling variability):  0.44
#> 
#> Test for Heterogeneity:
#> Q(df = 37) = 16.2200, p-val = 0.9988
#> 
#> Model Results:
#> 
#> estimate      se    zval    pval    ci.lb   ci.ub    
#>   0.2512  0.1599  1.5713  0.1161  -0.0621  0.5646    
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 

# mortality
ma04 <- rma.uni(measure="OR", method="FE",
                drop00=TRUE,  # (exclude "double-zeroes")
                ai=treat.death, ci=cont.death,
                n1i=treat.total, n2i=cont.total,
                slab=study, data=dat.nissen2007)
#> Warning: 19 studies with NAs omitted from model fitting.
ma04
#> 
#> Fixed-Effects Model (k = 23)
#> 
#> I^2 (total heterogeneity / total variability):   0.00%
#> H^2 (total variability / sampling variability):  0.22
#> 
#> Test for Heterogeneity:
#> Q(df = 22) = 4.7900, p-val = 1.0000
#> 
#> Model Results:
#> 
#> estimate      se    zval    pval    ci.lb   ci.ub    
#>   0.2686  0.2478  1.0841  0.2783  -0.2170  0.7543    
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 

############################################################
# estimate ORs based on a binomial GLMM
# (with *fixed* study effects)
# ("model 4" in Jackson et al., 2018)

# infarction
ma05 <- rma.glmm(measure="OR", model="UM.FS",
                 ai=treat.infarction, ci=cont.infarction,
                 n1i=treat.total, n2i=cont.total,
                 slab=study, data=dat.nissen2007)
#> Warning: 4 studies with NAs omitted from model fitting.
#> Warning: Some yi/vi values are NA.
#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
ma05
#> 
#> Random-Effects Model (k = 38; tau^2 estimator: ML)
#> Model Type: Unconditional Model with Fixed Study Effects
#> 
#> tau^2 (estimated amount of total heterogeneity): 0
#> 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
#> 
#> Tests for Heterogeneity:
#> Wld(df = 37) = 5.7016, p-val = 1.0000
#> LRT(df = 37) = 39.1360, p-val = 0.3741
#> 
#> Model Results:
#> 
#> estimate      se    zval    pval   ci.lb   ci.ub    
#>   0.3554  0.1664  2.1359  0.0327  0.0293  0.6814  * 
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 

# mortality
ma06 <- rma.glmm(measure="OR", model="UM.FS",
                 ai=treat.death, ci=cont.death,
                 n1i=treat.total, n2i=cont.total,
                 slab=study, data=dat.nissen2007)
#> Warning: 19 studies with NAs omitted from model fitting.
#> Warning: Some yi/vi values are NA.
#> Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
ma06
#> 
#> Random-Effects Model (k = 23; tau^2 estimator: ML)
#> Model Type: Unconditional Model with Fixed Study Effects
#> 
#> tau^2 (estimated amount of total heterogeneity): 0
#> 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
#> 
#> Tests for Heterogeneity:
#> Wld(df = 22) = 1.0171, p-val = 1.0000
#> LRT(df = 22) = 16.9513, p-val = 0.7660
#> 
#> Model Results:
#> 
#> estimate      se    zval    pval    ci.lb   ci.ub    
#>   0.5092  0.2727  1.8671  0.0619  -0.0253  1.0438  . 
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 

############################################################
# estimate ORs based on binomial GLMM
# (with *random* study effects)
# ("model 5" in Jackson et al., 2018)

# infarction
ma07 <- rma.glmm(measure="OR", model="UM.RS", nAGQ=1,
                 ai=treat.infarction, ci=cont.infarction,
                 n1i=treat.total, n2i=cont.total,
                 slab=study, data=dat.nissen2007)
#> Warning: 4 studies with NAs omitted from model fitting.
#> Warning: Some yi/vi values are NA.
#> Warning: failure to converge in 10000 evaluations
#> Warning: convergence code 4 from Nelder_Mead: failure to converge in 10000 evaluations
#> Warning: variance-covariance matrix computed from finite-difference Hessian is
#> not positive definite or contains NA values: falling back to var-cov estimated from RX
ma07
#> 
#> Random-Effects Model (k = 38; tau^2 estimator: ML)
#> Model Type: Unconditional Model with Random Study Effects
#> 
#> tau^2 (estimated amount of total heterogeneity): 0
#> 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
#> 
#> sigma^2 (estimated amount of study level variability): 0.4997
#> sigma (square root of estimated sigma^2 value):        0.7069
#> 
#> Tests for Heterogeneity:
#> Wld(df = 37) = 23.3462, p-val = 0.9607
#> LRT(df = 37) = 33.9645, p-val = 0.6121
#> 
#> Model Results:
#> 
#> estimate      se    zval    pval    ci.lb   ci.ub    
#>   0.2962  0.1684  1.7593  0.0785  -0.0338  0.6262  . 
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 

# mortality
ma08 <- rma.glmm(measure="OR", model="UM.RS", nAGQ=1,
                 ai=treat.death, ci=cont.death,
                 n1i=treat.total, n2i=cont.total,
                 slab=study, data=dat.nissen2007)
#> Warning: 19 studies with NAs omitted from model fitting.
#> Warning: Some yi/vi values are NA.
ma08
#> 
#> Random-Effects Model (k = 23; tau^2 estimator: ML)
#> Model Type: Unconditional Model with Random Study Effects
#> 
#> tau^2 (estimated amount of total heterogeneity): 0
#> 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
#> 
#> sigma^2 (estimated amount of study level variability): 0.3040
#> sigma (square root of estimated sigma^2 value):        0.5513
#> 
#> Tests for Heterogeneity:
#> Wld(df = 22) = 24.9143, p-val = 0.3012
#> LRT(df = 22) = 23.2507, p-val = 0.3877
#> 
#> Model Results:
#> 
#> estimate      se    zval    pval    ci.lb   ci.ub    
#>   0.4463  0.2761  1.6165  0.1060  -0.0948  0.9874    
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 

############################################################
# estimate ORs based on hypergeometric model
# (model 7 (approx.) in Jackson et al., 2018)

# infarction
ma09 <- rma.glmm(measure="OR", model="CM.AL",
                 ai=treat.infarction, ci=cont.infarction,
                 n1i=treat.total, n2i=cont.total,
                 slab=study, data=dat.nissen2007)
#> Warning: 4 studies with NAs omitted from model fitting.
#> Warning: Some yi/vi values are NA.
ma09
#> 
#> Random-Effects Model (k = 38; tau^2 estimator: ML)
#> Model Type: Conditional Model with Approximate Likelihood
#> 
#> tau^2 (estimated amount of total heterogeneity): 0
#> 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
#> 
#> Tests for Heterogeneity:
#> Wld(df = 37) = 5.6239, p-val = 1.0000
#> LRT(df = 37) = 38.9844, p-val = 0.3806
#> 
#> Model Results:
#> 
#> estimate      se    zval    pval   ci.lb   ci.ub    
#>   0.3510  0.1653  2.1235  0.0337  0.0270  0.6751  * 
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 

# mortality
ma10 <- rma.glmm(measure="OR", model="CM.AL",
                 ai=treat.death, ci=cont.death,
                 n1i=treat.total, n2i=cont.total,
                 slab=study, data=dat.nissen2007)
#> Warning: 19 studies with NAs omitted from model fitting.
#> Warning: Some yi/vi values are NA.
ma10
#> 
#> Random-Effects Model (k = 23; tau^2 estimator: ML)
#> Model Type: Conditional Model with Approximate Likelihood
#> 
#> tau^2 (estimated amount of total heterogeneity): 0
#> 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
#> 
#> Tests for Heterogeneity:
#> Wld(df = 22) = 1.0062, p-val = 1.0000
#> LRT(df = 22) = 16.9181, p-val = 0.7679
#> 
#> Model Results:
#> 
#> estimate      se    zval    pval    ci.lb   ci.ub    
#>   0.5064  0.2720  1.8617  0.0626  -0.0267  1.0395  . 
#> 
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 

############################################################
# tabulate estimates and CIs

# log-OR infarction
logOR.inf <- rbind("Peto"    =c("OR"=ma01$b, "lower"=ma01$ci.lb, "upper"=ma01$ci.ub),
                   "IV-CC"   =c("OR"=ma03$b, "lower"=ma03$ci.lb, "upper"=ma03$ci.ub),
                   "M4-UM.FS"=c("OR"=ma05$b, "lower"=ma05$ci.lb, "upper"=ma05$ci.ub),
                   "M5-UM.RS"=c("OR"=ma07$b, "lower"=ma07$ci.lb, "upper"=ma07$ci.ub),
                   "M7-CM.AL"=c("OR"=ma09$b, "lower"=ma09$ci.lb, "upper"=ma09$ci.ub))

# log-OR mortality
logOR.mort <- rbind("Peto"    =c("OR"=ma02$b, "lower"=ma02$ci.lb, "upper"=ma02$ci.ub),
                    "IV-CC"   =c("OR"=ma04$b, "lower"=ma04$ci.lb, "upper"=ma04$ci.ub),
                    "M4-UM.FS"=c("OR"=ma06$b, "lower"=ma06$ci.lb, "upper"=ma06$ci.ub),
                    "M5-UM.RS"=c("OR"=ma08$b, "lower"=ma08$ci.lb, "upper"=ma08$ci.ub),
                    "M7-CM.AL"=c("OR"=ma10$b, "lower"=ma10$ci.lb, "upper"=ma10$ci.ub))

# show ORs (infarction)
round(exp(logOR.inf), 2)
#>          OR.intrcpt lower upper
#> Peto           1.43  1.03  1.98
#> IV-CC          1.29  0.94  1.76
#> M4-UM.FS       1.43  1.03  1.98
#> M5-UM.RS       1.34  0.97  1.87
#> M7-CM.AL       1.42  1.03  1.96
# show ORs (mortality)
round(exp(logOR.mort), 2)
#>          OR.intrcpt lower upper
#> Peto           1.64  0.98  2.74
#> IV-CC          1.31  0.80  2.13
#> M4-UM.FS       1.66  0.97  2.84
#> M5-UM.RS       1.56  0.91  2.68
#> M7-CM.AL       1.66  0.97  2.83