Time-to-event data for five different endpoints in 641 women from a randomised trial of tamoxifen alone versus tamoxifen plus radiotherapy (Collett, 2023, Example 13.3).
Format
A data frame with 641 rows and 18 variables:
- id
Patient identifier.
- treat
Treatment: 0 = tamoxifen plus radiotherapy, 1 = tamoxifen alone.
- age
Age of the patient in years.
- size
Tumour size in cm.
- hist
Tumour histology: 1 = ductal, 2 = lobular, 3 = medullary, 4 = mixed, 5 = other.
- hr
Hormone receptor level: 0 = negative, 1 = positive.
- hb
Haemoglobin level in g/l.
- andis
Axillary node dissection: 0 = no, 1 = yes.
- lsurv
Time to local relapse or last follow-up.
- ls
Local relapse: 0 = no, 1 = yes.
- asurv
Time to axillary relapse or last follow-up.
- as
Axillary relapse: 0 = no, 1 = yes.
- dsurv
Time to distant relapse or last follow-up.
- ds
Distant relapse: 0 = no, 1 = yes.
- msurv
Time to second malignancy or last follow-up.
- ms
Second malignancy: 0 = no, 1 = yes.
- tsurv
Time from randomisation to death or last follow-up.
- ts
Status at last follow-up: 0 = alive, 1 = dead.
Source
Collett, D. (2023) Modelling Survival Data in Medical Research, 4th ed. Chapman & Hall/CRC, Example 13.3 (Table 13.5). Data from Fyles et al. (2004) and Pintilie (2006).
Details
The women were randomised to tamoxifen alone or with radiotherapy; 320 received tamoxifen plus radiotherapy and 321 tamoxifen alone. Each of the five endpoints has its own time and indicator, and the times are censored at the last date the woman was known to be alive. For women who relapsed after the start of follow-up the relevant indicator switches from 0 to 1.
The example was used by Pintilie (2006) to illustrate the WLW model for multiple events. Because a woman can experience more than one of the five event types, the data are rearranged into one row per possible event per woman before fitting the model (Example 13.3).
Aliases
The data set is available under the alias d13.3; dX.Y is the alias for
the data set used in Example X.Y of Collett (2023). See
dataset_by_exercise for the complete index.
Examples
# Collett (2023), Chapter 17 style -----------------------------------
# Example 13.3: four event types, each analysed as a cause-specific hazard
# local relapse
survival::coxph(survival::Surv(lsurv, ls) ~ treat + age + size + hr, data = tamoxifen)
#> Call:
#> survival::coxph(formula = survival::Surv(lsurv, ls) ~ treat +
#> age + size + hr, data = tamoxifen)
#>
#> coef exp(coef) se(coef) z p
#> treat 2.34017 10.38302 0.53029 4.413 1.02e-05
#> age -0.03019 0.97026 0.01865 -1.618 0.105612
#> size 0.49142 1.63463 0.16939 2.901 0.003718
#> hr -1.40966 0.24423 0.40952 -3.442 0.000577
#>
#> Likelihood ratio test=52.42 on 4 df, p=1.126e-10
#> n= 641, number of events= 39
# axillary relapse
survival::coxph(survival::Surv(asurv, as) ~ treat + age + size + hr, data = tamoxifen)
#> Call:
#> survival::coxph(formula = survival::Surv(asurv, as) ~ treat +
#> age + size + hr, data = tamoxifen)
#>
#> coef exp(coef) se(coef) z p
#> treat 1.19529 3.30453 0.65904 1.814 0.0697
#> age -0.01409 0.98601 0.03109 -0.453 0.6505
#> size 0.70853 2.03101 0.29549 2.398 0.0165
#> hr -1.15701 0.31443 0.67612 -1.711 0.0870
#>
#> Likelihood ratio test=12.91 on 4 df, p=0.0117
#> n= 641, number of events= 13
# distant relapse
survival::coxph(survival::Surv(dsurv, ds) ~ treat + age + size + hr, data = tamoxifen)
#> Call:
#> survival::coxph(formula = survival::Surv(dsurv, ds) ~ treat +
#> age + size + hr, data = tamoxifen)
#>
#> coef exp(coef) se(coef) z p
#> treat -0.16859 0.84486 0.31427 -0.536 0.59166
#> age 0.01422 1.01432 0.01767 0.805 0.42090
#> size 0.78297 2.18796 0.16412 4.771 1.84e-06
#> hr -1.20662 0.29921 0.37279 -3.237 0.00121
#>
#> Likelihood ratio test=34.06 on 4 df, p=7.256e-07
#> n= 641, number of events= 41
# second malignancy
survival::coxph(survival::Surv(msurv, ms) ~ treat + age + size + hr, data = tamoxifen)
#> Call:
#> survival::coxph(formula = survival::Surv(msurv, ms) ~ treat +
#> age + size + hr, data = tamoxifen)
#>
#> coef exp(coef) se(coef) z p
#> treat 0.197425 1.218261 0.255376 0.773 0.4395
#> age 0.001272 1.001273 0.014770 0.086 0.9314
#> size 0.318548 1.375129 0.152566 2.088 0.0368
#> hr 0.174433 1.190571 0.523835 0.333 0.7391
#>
#> Likelihood ratio test=4.63 on 4 df, p=0.3274
#> n= 641, number of events= 62
# Modern tools --------------------------------------------------------
# A competing-risk view of the first event of any of the four types
if (requireNamespace("tidycmprsk", quietly = TRUE)) {
first <- data.frame(
time = pmin(tamoxifen$lsurv, tamoxifen$asurv, tamoxifen$dsurv, tamoxifen$msurv),
treat = tamoxifen$treat
)
first$cause <- factor(
c("local", "axillary", "distant", "second")[
apply(cbind(tamoxifen$lsurv, tamoxifen$asurv, tamoxifen$dsurv, tamoxifen$msurv),
1, which.min)
]
)
tidycmprsk::cuminc(survival::Surv(time, cause) ~ treat, data = first)
}
#>
#> ── cuminc() ────────────────────────────────────────────────────────────────────
#>
#> • Failure type "distant"
#> strata time n.risk estimate std.error 95% CI
#> 0 1,000 260 0.044 0.012 0.025, 0.071
#> 0 2,000 153 0.044 0.012 0.025, 0.071
#> 0 3,000 36 0.047 0.012 0.028, 0.075
#> 1 1,000 265 0.006 0.004 0.001, 0.021
#> 1 2,000 136 0.013 0.006 0.004, 0.030
#> 1 3,000 19 0.019 0.008 0.008, 0.039
#>
#> • Failure type "local"
#> strata time n.risk estimate std.error 95% CI
#> 0 1,000 260 0.085 0.016 0.058, 0.119
#> 0 2,000 153 0.400 0.028 0.345, 0.453
#> 0 3,000 36 0.754 0.024 0.702, 0.798
#> 1 1,000 265 0.122 0.018 0.089, 0.161
#> 1 2,000 136 0.490 0.028 0.433, 0.544
#> 1 3,000 19 0.835 0.021 0.788, 0.872
#>
#> • Failure type "second"
#> strata time n.risk estimate std.error 95% CI
#> 0 1,000 260 0.053 0.013 0.032, 0.082
#> 0 2,000 153 0.072 0.015 0.047, 0.104
#> 0 3,000 36 0.085 0.016 0.058, 0.119
#> 1 1,000 265 0.035 0.010 0.018, 0.059
#> 1 2,000 136 0.063 0.014 0.040, 0.094
#> 1 3,000 19 0.086 0.016 0.058, 0.120
#>
#> • Tests
#> outcome statistic df p.value
#> distant 4.74 1.00 0.029
#> local 4.59 1.00 0.032
#> second 0.013 1.00 0.91