Survival times, in days, of 37 leukaemia patients who received a bone marrow transplant, together with donor and recipient variables (Collett, 2023, Appendix B.4).
Format
A data frame with 37 rows and 9 variables:
- patient
Patient number (1-37).
- time
Survival time in days.
- status
Event indicator: 1 = death, 0 = alive.
- rage
Age of the recipient in years.
- dage
Age of the donor in years.
- type
Type of leukaemia: 1 = AML, 2 = ALL, 3 = CML.
- preg
Whether the donor had previously been pregnant: 0 = no, 1 = yes.
- index
Index of mixed epidermal lymphocyte reactions.
- gvhd
Graft-versus-host disease: 0 = no, 1 = yes.
Source
Collett, D. (2023) Modelling Survival Data in Medical Research, 4th ed. Chapman & Hall/CRC, Appendix B.4 (Table B.4). Data from Bagot et al. (1988) and Altman (1991).
Details
The 37 patients were in complete remission from AML or ALL, or in the chronic phase of CML, and received a non-depleted allogeneic bone marrow transplant. There are 17 deaths. The data were also given in Altman (1991).
The appendix suggests fitting a Weibull accelerated failure time model, estimating and plotting the baseline survivor function, comparing with log-logistic and lognormal models and with a Cox model, and checking the adequacy of the preferred model. See bmt_leukaemia (a different study of 23 patients) and bmt_outcome (EBMT registry data).
Aliases
This data set is not used in a numbered example, so it has no dX.Y alias.
See dataset_by_exercise for the complete index.
Examples
# Collett (2023), Appendix B.4 (no numbered example) ------------------
# Chapter 17 style: Weibull accelerated failure time model
survival::survreg(
survival::Surv(time, status) ~ rage + dage + factor(type) + gvhd,
data = bmt, dist = "weibull"
)
#> Call:
#> survival::survreg(formula = survival::Surv(time, status) ~ rage +
#> dage + factor(type) + gvhd, data = bmt, dist = "weibull")
#>
#> Coefficients:
#> (Intercept) rage dage factor(type)2 factor(type)3
#> 8.20126018 0.02213435 -0.04198852 0.06341089 2.82124526
#> gvhd
#> -2.63546245
#>
#> Scale= 0.8661791
#>
#> Loglik(model)= -124.5 Loglik(intercept only)= -138.9
#> Chisq= 28.72 on 5 degrees of freedom, p= 2.64e-05
#> n= 37
# The corresponding Cox model
survival::coxph(
survival::Surv(time, status) ~ rage + dage + factor(type) + gvhd,
data = bmt
)
#> Call:
#> survival::coxph(formula = survival::Surv(time, status) ~ rage +
#> dage + factor(type) + gvhd, data = bmt)
#>
#> coef exp(coef) se(coef) z p
#> rage -0.02218 0.97806 0.04228 -0.525 0.59984
#> dage 0.05306 1.05449 0.03618 1.467 0.14251
#> factor(type)2 0.29233 1.33955 0.72466 0.403 0.68665
#> factor(type)3 -2.36274 0.09416 0.85376 -2.767 0.00565
#> gvhd 2.44333 11.51128 0.77197 3.165 0.00155
#>
#> Likelihood ratio test=22.17 on 5 df, p=0.000486
#> n= 37, number of events= 17
# Modern tools --------------------------------------------------------
if (requireNamespace("flexsurv", quietly = TRUE)) {
flexsurv::flexsurvreg(
survival::Surv(time, status) ~ rage + dage + factor(type) + gvhd,
data = bmt, dist = "weibull"
)
}
#> Call:
#> flexsurv::flexsurvreg(formula = survival::Surv(time, status) ~
#> rage + dage + factor(type) + gvhd, data = bmt, dist = "weibull")
#>
#> Estimates:
#> data mean est L95% U95% se exp(est)
#> shape NA 1.15e+00 7.68e-01 1.73e+00 2.40e-01 NA
#> scale NA 3.65e+03 6.21e+02 2.14e+04 3.29e+03 NA
#> rage 2.54e+01 2.21e-02 -4.46e-02 8.89e-02 3.41e-02 1.02e+00
#> dage 2.58e+01 -4.20e-02 -1.03e-01 1.87e-02 3.10e-02 9.59e-01
#> factor(type)2 4.32e-01 6.34e-02 -1.06e+00 1.18e+00 5.71e-01 1.07e+00
#> factor(type)3 2.70e-01 2.82e+00 1.36e+00 4.29e+00 7.48e-01 1.68e+01
#> gvhd 4.59e-01 -2.64e+00 -3.83e+00 -1.44e+00 6.11e-01 7.17e-02
#> L95% U95%
#> shape NA NA
#> scale NA NA
#> rage 9.56e-01 1.09e+00
#> dage 9.02e-01 1.02e+00
#> factor(type)2 3.48e-01 3.27e+00
#> factor(type)3 3.88e+00 7.27e+01
#> gvhd 2.16e-02 2.38e-01
#>
#> N = 37, Events: 17, Censored: 20
#> Total time at risk: 24782
#> Log-likelihood = -124.5009, df = 7
#> AIC = 263.0018
#>