Survival times, in days, of 26 women with ovarian cancer randomised to one of two chemotherapy regimens (Collett, 2023, Example 5.11).
Format
A data frame with 26 rows and 7 variables:
- patient
Patient number (1-26).
- time
Survival time in days from randomisation.
- status
Event indicator: 1 = death, 0 = right-censored.
- treat
Treatment: 1 = cyclophosphamide alone (single), 2 = cyclophosphamide combined with adriamycin.
- age
Age of the patient in years.
- rdisease
Extent of residual disease: 1 = incomplete excision, 2 = complete excision.
- perf
Performance status: 1 = good, 2 = poor.
Source
Collett, D. (2023) Modelling Survival Data in Medical Research, 4th ed. Chapman & Hall/CRC, Example 5.11 (Table 5.6). Data from Edmunson et al. (1979) via Therneau (1986).
Details
All women had minimal residual disease after surgical excision of tumours
larger than 2 cm. There are 12 deaths among the 26 patients. The factors
treat, rdisease and perf each have two levels and are fitted as
indicator variables, so the baseline hazard does not correspond to a
patient with all covariates zero (see Example 5.11).
The data are used for Weibull proportional hazards models and variable selection (Examples 5.11 and 5.12), for model checking of parametric models (Examples 7.1-7.4) and for a time-dependent covariate (Example 8.3).
Aliases
The data set is available under the aliases d5.11, d5.12, d7.1,
d7.2, d7.3, d7.4, d8.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 -----------------------------------
# Examples 5.11 and 5.12: Weibull proportional hazards model
fit_ovarian <- survival::survreg(
survival::Surv(time, status) ~ treat + age,
data = ovarian, dist = "weibull"
)
summary(fit_ovarian)
#>
#> Call:
#> survival::survreg(formula = survival::Surv(time, status) ~ treat +
#> age, data = ovarian, dist = "weibull")
#> Value Std. Error z p
#> (Intercept) 10.4254 1.4340 7.27 3.6e-13
#> treat 0.5615 0.3399 1.65 0.099
#> age -0.0790 0.0198 -4.00 6.4e-05
#> Log(scale) -0.5998 0.2353 -2.55 0.011
#>
#> Scale= 0.549
#>
#> Weibull distribution
#> Loglik(model)= -88.7 Loglik(intercept only)= -98
#> Chisq= 18.41 on 2 degrees of freedom, p= 1e-04
#> Number of Newton-Raphson Iterations: 6
#> n= 26
#>
# Examples 7.1-7.4: residual checks for the parametric model
head(stats::residuals(fit_ovarian, type = "deviance"))
#> 1 2 3 4 5 6
#> -1.0835328 0.5490398 -1.6344197 0.4249979 -2.1483226 1.1328399
# Example 8.3: a time-dependent effect of treatment
survival::coxph(
survival::Surv(time, status) ~ treat + tt(treat),
data = ovarian,
tt = function(x, t, ...) x * log(t)
)
#> Call:
#> survival::coxph(formula = survival::Surv(time, status) ~ treat +
#> tt(treat), data = ovarian, tt = function(x, t, ...) x * log(t))
#>
#> coef exp(coef) se(coef) z p
#> treat -1.611e+01 1.005e-07 1.213e+01 -1.328 0.184
#> tt(treat) 2.649e+00 1.414e+01 2.028e+00 1.306 0.192
#>
#> Likelihood ratio test=4.52 on 2 df, p=0.1044
#> n= 26, number of events= 12
# Modern tools --------------------------------------------------------
if (requireNamespace("flexsurv", quietly = TRUE)) {
flexsurv::flexsurvreg(
survival::Surv(time, status) ~ treat + age,
data = ovarian, dist = "weibull"
)
}
#> Call:
#> flexsurv::flexsurvreg(formula = survival::Surv(time, status) ~
#> treat + age, data = ovarian, dist = "weibull")
#>
#> Estimates:
#> data mean est L95% U95% se exp(est)
#> shape NA 1.82e+00 1.15e+00 2.89e+00 4.29e-01 NA
#> scale NA 3.37e+04 2.03e+03 5.60e+05 4.83e+04 NA
#> treat 1.50e+00 5.61e-01 -1.05e-01 1.23e+00 3.40e-01 1.75e+00
#> age 5.57e+01 -7.90e-02 -1.18e-01 -4.02e-02 1.98e-02 9.24e-01
#> L95% U95%
#> shape NA NA
#> scale NA NA
#> treat 9.00e-01 3.41e+00
#> age 8.89e-01 9.61e-01
#>
#> N = 26, Events: 12, Censored: 14
#> Total time at risk: 15588
#> Log-likelihood = -88.74979, df = 4
#> AIC = 185.4996
#>