Author: Diego Veliz-Otani
Last Updated: November 29, 2021
1. Intro
- Ref 1: Understanding and Treating Triple-Negative Breast Cancer (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2868264/)
- Mental note: Knudson’s two hit hypothesis. Maybe comment to justify biological interaction.
- Hormone therapy: Tamoxifen (a strogen-targetting drug) was used.
2. Some basic data exploration (Kaplan-Meier & logrank test):
km_null <- survfit(Surv(survtime, censdead) ~ 1, data=dat) ## KAPLAN-MEIER
km_menopause <- survfit(Surv(survtime, censdead) ~ menopause, data=dat) ## KAPLAN-MEIER
km_hormone <- survfit(Surv(survtime, censdead) ~ hormone, data=dat) ## KAPLAN-MEIER
km_grade<- survfit(Surv(survtime, censdead) ~ grade, data=dat) ## KAPLAN-MEIER
km_prog<- survfit(Surv(survtime, censdead) ~ prog_recp_high, data=dat) ## KAPLAN-MEIER
km_estr<- survfit(Surv(survtime, censdead) ~ estrg_recp_high, data=dat) ## KAPLAN-MEIER
plot(km_null, col = cols[1], lwd = 2,
xlab = "Time(days)", ylab = "S(t)",
main = "Kaplan-Meier curve")
grid()

plot(km_menopause, col = cols[1:2], lwd = 2,
xlab = "Time(days)", ylab = "S(t)",
main = "Kaplan-Meier curves stratified by Menopause")
grid()
leg <- levels(dat$menopause)
legend("topright", legend = leg, col = cols[1:2], bty="n", lwd = 4, cex=0.8)

plot(km_hormone, col = cols[1:2], lwd = 2,
xlab = "Time(days)", ylab = "S(t)",
main = "Kaplan-Meier curves stratified by Hormone therapy")
grid()
leg <- levels(dat$hormone)
legend("topright", legend = leg, col = cols[1:2], bty="n", lwd = 4, cex=0.8)

plot(km_grade, col = cols[1:3], lwd = 2,
xlab = "Time(days)", ylab = "S(t)",
main = "Kaplan-Meier curves stratified by Tumor grade")
grid()
leg <- levels(dat$grade)
legend("topright", legend = leg, col = cols[1:3], bty="n", lwd = 4, cex=0.8)

plot(km_prog, col = cols[1:2], lwd = 2,
xlab = "Time(days)", ylab = "S(t)",
main = "Kaplan-Meier curves stratified by Number of progestrone receptor")
grid()
leg <- levels(dat$prog_recp_high)
legend("topright", legend = leg, col = cols[1:3], bty="n", lwd = 4, cex=0.8)

plot(km_estr, col = cols[1:2], lwd = 2,
xlab = "Time(days)", ylab = "S(t)",
main = "Kaplan-Meier curves stratified by Number of Estrogen receptor")
grid()
leg <- levels(dat$estrg_recp_high)
legend("topright", legend = leg, col = cols[1:3], bty="n", lwd = 4, cex=0.8)


## Warning: `as.tibble()` was deprecated in tibble 2.0.0.
## Please use `as_tibble()` instead.
## The signature and semantics have changed, see `?as_tibble`.
## Warning: `select_()` was deprecated in dplyr 0.7.0.
## Please use `select()` instead.
















- Logrank test of menopause (crude association):
## Call:
## survdiff(formula = Surv(survtime, censdead) ~ menopause, data = dat)
##
## N Observed Expected (O-E)^2/E (O-E)^2/V
## menopause=No 290 67 71.5 0.285 0.49
## menopause=Yes 396 104 99.5 0.205 0.49
##
## Chisq= 0.5 on 1 degrees of freedom, p= 0.5
- Logrank test of hormone (crude association):
## Call:
## survdiff(formula = Surv(survtime, censdead) ~ hormone, data = dat)
##
## N Observed Expected (O-E)^2/E (O-E)^2/V
## hormone=No 440 115 104.8 0.986 2.56
## hormone=Yes 246 56 66.2 1.562 2.56
##
## Chisq= 2.6 on 1 degrees of freedom, p= 0.1
- Logrank test of tumor grade (crude association):
## Call:
## survdiff(formula = Surv(survtime, censdead) ~ grade, data = dat)
##
## N Observed Expected (O-E)^2/E (O-E)^2/V
## grade=Grade 1 81 6 22.3 11.922 13.7
## grade=Grade 2 444 107 115.0 0.557 1.7
## grade=Grade 3 161 58 33.7 17.543 21.9
##
## Chisq= 30.1 on 2 degrees of freedom, p= 0.0000003
3. Crude and stratified associations:
assoc_crude <- survfit(Surv(survtime, censdead) ~ hormone, data = dat)
ggsurvplot(assoc_crude, data=dat,
conf.int = TRUE,
legend.labs = levels(dat$hormone),
legend.title="Hormone therapy",
pval = TRUE,
pval.method = TRUE)+
ggtitle("Overall Survival time")

assoc_grade <- survfit(Surv(survtime, censdead) ~ hormone+grade, data = dat)
ggsurvplot(assoc_grade, data=dat,
conf.int = TRUE,
legend.labs = levels(dat$hormone),
legend.title="Hormone therapy",
facet.by = "grade",
pval = TRUE,
pval.method = TRUE) +
facet_wrap( ~ grade) +
ggtitle("Overall Survival time by tumor grade") + grids()

# dat$nodes_grp <- dat$nodes%>%cut(breaks=c(0, 1, 6, max(dat$nodes)), include.lowest=TRUE)
# dat$nodes%>%cut(breaks=c(0, 1, 6, max(dat$nodes)), include.lowest=TRUE)%>%table
assoc_node <- survfit(Surv(survtime, censdead) ~ hormone+nodes_grp, data = dat)
# stratlabs <- paste0("Nodes: ", levels(dat$nodes_grp))
# names(stratlabs) <- paste0("nodes_grp:",levels(dat$nodes_grp)) ## attempt to re-label the facet title, but it's not working
ggsurvplot(assoc_node, data=dat,
conf.int = TRUE,
legend.labs = levels(dat$hormone),
legend.title="Hormone therapy",
facet.by = "nodes_grp",
pval = TRUE,
pval.method = TRUE) +
ggtitle("Overall Survival time by number of nodes") +
facet_wrap(~nodes_grp) + grids()

# facet_wrap( ~ nodes_grp, labeller=labeller(strata=stratlabs)) ## Not working
assoc_estr <- survfit(Surv(survtime, censdead) ~ hormone+estrg_recp_high, data = dat)
# stratlabs <- paste0("Nodes: ", levels(dat$nodes_grp))
# names(stratlabs) <- paste0("nodes_grp:",levels(dat$nodes_grp)) ## attempt to re-label the facet title, but it's not working
ggsurvplot(assoc_estr, data=dat,
conf.int = TRUE,
legend.labs = levels(dat$hormone),
legend.title="Hormone therapy",
facet.by = "estrg_recp_high",
pval = TRUE,
pval.method = TRUE) +
ggtitle("Overall Survival time by Estrogen receptor") +
facet_wrap(~estrg_recp_high) + grids()

assoc_prog <- survfit(Surv(survtime, censdead) ~ hormone+prog_recp_high, data = dat)
ggsurvplot(assoc_prog, data=dat,
conf.int = TRUE,
legend.labs = levels(dat$hormone),
legend.title="Hormone therapy",
facet.by = "prog_recp_high",
pval = TRUE,
pval.method = TRUE) +
ggtitle("Overall Survival time by Progesterone receptor") +
facet_wrap(~prog_recp_high) + grids()

assoc_menopause <- survfit(Surv(survtime, censdead) ~ hormone+menopause, data = dat)
ggsurvplot(assoc_menopause, data=dat,
conf.int = TRUE,
legend.labs = levels(dat$hormone),
legend.title="Hormone therapy",
facet.by = "menopause",
pval = TRUE,
pval.method = TRUE) +
ggtitle("Overall Survival time by menopause") +
facet_wrap(~menopause) + grids()

assoc_menopause <- survfit(Surv(survtime, censdead) ~ hormone+menopause, data = dat)
ggsurvplot(assoc_menopause, data=dat,
conf.int = TRUE,
legend.labs = levels(dat$hormone),
legend.title="Hormone therapy",
facet.by = "menopause",
pval = TRUE,
pval.method = TRUE) +
ggtitle("Overall Survival time by menopause") +
facet_wrap(~menopause) + grids()

cols3 <- hcl.colors(n=12, palette = "Spectral")
assoc_menopause_est <- survfit(Surv(survtime, censdead) ~ hormone+menopause+estrg_recp_high, data = dat)
ggsurvplot(assoc_menopause_est, data=dat,
conf.int = TRUE,
legend.title="Treatment group",
facet.by = c("menopause"),
pval = TRUE,
pval.method = TRUE,
palette= cols3[c(1,2,9,10)]) +
ggtitle("Overall Survival time stratified by menopause") +
grids()

ggsurvplot(assoc_menopause_est, data=dat,
conf.int = TRUE,
legend.title="Treatment group",
facet.by = c("estrg_recp_high"),
pval = TRUE,
pval.method = TRUE,
palette= cols3[c(1,2,9,10)]) +
ggtitle("Overall Survival time stratified by high estrogen receptors") +
grids()

assoc_menopause_prog <- survfit(Surv(survtime, censdead) ~ hormone+menopause+prog_recp_high, data = dat)
ggsurvplot(assoc_menopause_prog, data=dat,
conf.int = TRUE,
legend.title="Treatment group",
facet.by = c("menopause"),
pval = TRUE,
pval.method = TRUE,
palette= cols3[c(1,2,9,10)]) +
ggtitle("Overall Survival time stratified by menopause") +
grids()

ggsurvplot(assoc_menopause_prog, data=dat,
conf.int = TRUE,
legend.title="Treatment group",
facet.by = c("prog_recp_high"),
pval = TRUE,
pval.method = TRUE,
palette= cols3[c(1,2,9,10)]) +
ggtitle("Overall Survival time stratified by progesterone receptors") +
grids()

###
assoc_prog_est <- survfit(Surv(survtime, censdead) ~ hormone+estrg_recp_high+prog_recp_high,
data = dat)
ggsurvplot(assoc_prog_est, data=dat,
conf.int = TRUE,
legend.title="Hormone Treatment",
facet.by = c("estrg_recp_high", "prog_recp_high"),
pval = TRUE,
pval.method = TRUE,
palette= cols3[c(1, 10)]) +
ggtitle("Overall Survival time stratified by abundance of hormone receptors") +
grids()

4. Parametric tests:
4.1. Exponential model:
4. Fitting models with {flexsurv}:
fit_w <- flexsurvreg(Surv(survtime, censdead) ~ age + grade +
hormone + menopause + nodes +
prog_recp_high + estrg_recp_high +
estrg_recp_high:hormone,
dist = "weibull", data = dat)
#pred_w <- predict(fit_w, type = "survival")
# pred_w <- ?plot.surv
fit_e <- flexsurvreg(Surv(survtime, censdead) ~ age + grade +
hormone + menopause + nodes +
prog_recp_high + estrg_recp_high +
estrg_recp_high:hormone,
dist = "exponential", data = dat)
fit_gg <- flexsurvreg(Surv(survtime, censdead) ~ age + grade +
hormone + menopause + nodes +
prog_recp_high + estrg_recp_high +
estrg_recp_high:hormone,
dist = "gengamma", data = dat, scale="odds")
fit_gg_sp <- flexsurvspline(Surv(survtime, censdead) ~ age + grade +
hormone + menopause + nodes +
prog_recp_high + estrg_recp_high +
estrg_recp_high:hormone,
data = dat, k = 1, scale="odds")
# lines(fit_gg_sp, col = "blue")
fit_ln <- flexsurvreg(Surv(survtime, censdead) ~ age + grade +
hormone + menopause + nodes +
prog_recp_high + estrg_recp_high +
estrg_recp_high:hormone,
dist = "lnorm", data = dat)
fit_f <- flexsurvreg(Surv(survtime, censdead) ~ age + grade +
hormone + menopause + nodes +
prog_recp_high + estrg_recp_high +
estrg_recp_high:hormone,
dist = "genf", data = dat)
fit_ll <- flexsurvreg(Surv(survtime, censdead) ~ age + grade +
hormone + menopause + nodes +
prog_recp_high + estrg_recp_high +
estrg_recp_high:hormone,
dist = "llogis", data = dat)
fit_gom <- flexsurvreg(Surv(survtime, censdead) ~ age + grade +
hormone + menopause + nodes +
prog_recp_high + estrg_recp_high +
estrg_recp_high:hormone,
dist = "gompertz", data = dat)
ggflexsurvplot(fit_e, palette=cols[7]) +
ggtitle("Exponential model")

ggflexsurvplot(fit_w, palette=cols[7]) +
ggtitle("Weibull model")

ggflexsurvplot(fit_gg, palette=cols[7]) +
ggtitle("Generalized Gamma model")

ggflexsurvplot(fit_ln, palette=cols[7]) +
ggtitle("Log-Normal model")

ggflexsurvplot(fit_e, palette=cols[7]) +
ggtitle("Generalized F model")

ggflexsurvplot(fit_ll, palette=cols[7]) +
ggtitle("Log-logistic model")

ggflexsurvplot(fit_gom, palette=cols[7]) +
ggtitle("Gompertz model")

plot(fit_f, col = "gray50", lwd = 5)
lines(fit_e, col = cols[1])
# lines(fit_w, col = cols[2])
lines(fit_gg, col = cols[3])
lines(fit_ln, col = cols[4])
lines(fit_ll, col = cols[5])
lines(fit_gom, col = cols[6])

plot(fit_f, col = "gray50", lwd = 5, type ="hazard")
lines(fit_e, col = cols[1], type ="hazard")
# lines(fit_w, col = cols[2], type ="hazard")
lines(fit_gg, col = cols[3], type ="hazard")
lines(fit_ln, col = cols[4], type ="hazard")
lines(fit_ll, col = cols[5], type ="hazard")
lines(fit_gom, col = cols[6], type ="hazard")

plot(fit_f, col = "gray50", lwd = 5, type ="cumhaz")
lines(fit_e, col = cols[1], type ="cumhaz")
# lines(fit_w, col = cols[2], type ="hazard")
lines(fit_gg, col = cols[3], type ="cumhaz")
lines(fit_ln, col = cols[4], type ="cumhaz")
lines(fit_ll, col = cols[5], type ="cumhaz")
lines(fit_gom, col = cols[6], type ="cumhaz")

- Exponential distribution:
fit_e
## Call:
## flexsurvreg(formula = Surv(survtime, censdead) ~ age + grade +
## hormone + menopause + nodes + prog_recp_high + estrg_recp_high +
## estrg_recp_high:hormone, data = dat, dist = "exponential")
##
## Estimates:
## data mean est L95% U95%
## rate NA 0.0001115 0.0000297 0.0004189
## age 53.0524781 0.0020604 -0.0208469 0.0249676
## gradeGrade 2 0.6472303 0.6306489 -0.2136302 1.4749280
## gradeGrade 3 0.2346939 0.7992662 -0.0881914 1.6867237
## hormoneYes 0.3586006 -0.4264228 -0.8571969 0.0043512
## menopauseYes 0.5772595 0.1595040 -0.3366009 0.6556089
## nodes 5.0102041 0.0594461 0.0413248 0.0775674
## prog_recp_highhigh 0.5072886 -0.9946993 -1.3767371 -0.6126616
## estrg_recp_highhigh 0.5262391 -0.3448877 -0.7603029 0.0705275
## hormoneYes:estrg_recp_highhigh 0.2040816 0.3259127 -0.3264283 0.9782537
## se exp(est) L95% U95%
## rate 0.0000753 NA NA NA
## age 0.0116876 1.0020625 0.9793689 1.0252819
## gradeGrade 2 0.4307625 1.8788293 0.8076470 4.3707209
## gradeGrade 3 0.4527928 2.2239083 0.9155856 5.4017540
## hormoneYes 0.2197867 0.6528402 0.4243499 1.0043607
## menopauseYes 0.2531194 1.1729290 0.7141938 1.9263150
## nodes 0.0092457 1.0612486 1.0421906 1.0806551
## prog_recp_highhigh 0.1949208 0.3698346 0.2524008 0.5419066
## estrg_recp_highhigh 0.2119504 0.7082999 0.4675248 1.0730741
## hormoneYes:estrg_recp_highhigh 0.3328332 1.3852944 0.7214961 2.6598075
##
## N = 686, Events: 171, Censored: 515
## Total time at risk: 905940
## Log-likelihood = -1584.876, df = 10
## AIC = 3189.752
fit_w
## Call:
## flexsurvreg(formula = Surv(survtime, censdead) ~ age + grade +
## hormone + menopause + nodes + prog_recp_high + estrg_recp_high +
## estrg_recp_high:hormone, data = dat, dist = "weibull")
##
## Estimates:
## data mean est L95%
## shape NA 1.70403 1.50112
## scale NA 4593.29071 2094.21063
## age 53.05248 -0.00287 -0.01625
## gradeGrade 2 0.64723 -0.35634 -0.85503
## gradeGrade 3 0.23469 -0.48752 -1.01208
## hormoneYes 0.35860 0.32141 0.06784
## menopauseYes 0.57726 -0.08770 -0.38016
## nodes 5.01020 -0.04007 -0.05116
## prog_recp_highhigh 0.50729 0.63002 0.39624
## estrg_recp_highhigh 0.52624 0.21541 -0.02937
## hormoneYes:estrg_recp_highhigh 0.20408 -0.22070 -0.60430
## U95% se exp(est)
## shape 1.93437 0.11023 NA
## scale 10074.59289 1840.67790 NA
## age 0.01052 0.00683 0.99714
## gradeGrade 2 0.14235 0.25444 0.70024
## gradeGrade 3 0.03704 0.26764 0.61415
## hormoneYes 0.57498 0.12938 1.37907
## menopauseYes 0.20476 0.14922 0.91604
## nodes -0.02898 0.00566 0.96072
## prog_recp_highhigh 0.86379 0.11928 1.87764
## estrg_recp_highhigh 0.46019 0.12489 1.24037
## hormoneYes:estrg_recp_highhigh 0.16291 0.19572 0.80196
## L95% U95%
## shape NA NA
## scale NA NA
## age 0.98388 1.01057
## gradeGrade 2 0.42527 1.15298
## gradeGrade 3 0.36346 1.03773
## hormoneYes 1.07019 1.77710
## menopauseYes 0.68375 1.22723
## nodes 0.95013 0.97143
## prog_recp_highhigh 1.48623 2.37214
## estrg_recp_highhigh 0.97105 1.58437
## hormoneYes:estrg_recp_highhigh 0.54646 1.17693
##
## N = 686, Events: 171, Censored: 515
## Total time at risk: 905940
## Log-likelihood = -1557.819, df = 11
## AIC = 3137.639
- Generalized distribution:
fit_gg
## Call:
## flexsurvreg(formula = Surv(survtime, censdead) ~ age + grade +
## hormone + menopause + nodes + prog_recp_high + estrg_recp_high +
## estrg_recp_high:hormone, data = dat, dist = "gengamma", scale = "odds")
##
## Estimates:
## data mean est L95% U95%
## mu NA 8.060083 7.259472 8.860693
## sigma NA 0.927965 0.759728 1.133457
## Q NA -0.086207 -0.621886 0.449472
## age 53.052478 0.000194 -0.014443 0.014830
## gradeGrade 2 0.647230 -0.286979 -0.693345 0.119388
## gradeGrade 3 0.234694 -0.483851 -0.929275 -0.038427
## hormoneYes 0.358601 0.289112 0.009512 0.568712
## menopauseYes 0.577259 -0.110334 -0.418477 0.197808
## nodes 5.010204 -0.045925 -0.061690 -0.030159
## prog_recp_highhigh 0.507289 0.688205 0.454389 0.922021
## estrg_recp_highhigh 0.526239 0.175659 -0.084333 0.435651
## hormoneYes:estrg_recp_highhigh 0.204082 -0.171083 -0.573141 0.230976
## se exp(est) L95% U95%
## mu 0.408482 NA NA NA
## sigma 0.094708 NA NA NA
## Q 0.273311 NA NA NA
## age 0.007468 1.000194 0.985661 1.014941
## gradeGrade 2 0.207334 0.750528 0.499901 1.126807
## gradeGrade 3 0.227261 0.616405 0.394840 0.962302
## hormoneYes 0.142656 1.335241 1.009557 1.765991
## menopauseYes 0.157218 0.895535 0.658049 1.218728
## nodes 0.008044 0.955114 0.940174 0.970291
## prog_recp_highhigh 0.119296 1.990141 1.575211 2.514368
## estrg_recp_highhigh 0.132651 1.192032 0.919125 1.545969
## hormoneYes:estrg_recp_highhigh 0.205135 0.842752 0.563752 1.259828
##
## N = 686, Events: 171, Censored: 515
## Total time at risk: 905940
## Log-likelihood = -1549.613, df = 12
## AIC = 3123.225
fit_ln
## Call:
## flexsurvreg(formula = Surv(survtime, censdead) ~ age + grade +
## hormone + menopause + nodes + prog_recp_high + estrg_recp_high +
## estrg_recp_high:hormone, data = dat, dist = "lnorm")
##
## Estimates:
## data mean est L95% U95%
## meanlog NA 8.096766 7.313362 8.880170
## sdlog NA 0.903087 0.804670 1.013541
## age 53.052478 -0.000151 -0.014713 0.014411
## gradeGrade 2 0.647230 -0.290575 -0.701254 0.120104
## gradeGrade 3 0.234694 -0.481817 -0.930933 -0.032701
## hormoneYes 0.358601 0.291626 0.014052 0.569200
## menopauseYes 0.577259 -0.106762 -0.414202 0.200679
## nodes 5.010204 -0.045707 -0.061048 -0.030365
## prog_recp_highhigh 0.507289 0.685028 0.452500 0.917556
## estrg_recp_highhigh 0.526239 0.178330 -0.080088 0.436749
## hormoneYes:estrg_recp_highhigh 0.204082 -0.176238 -0.575772 0.223295
## se exp(est) L95% U95%
## meanlog 0.399703 NA NA NA
## sdlog 0.053166 NA NA NA
## age 0.007430 0.999849 0.985395 1.014515
## gradeGrade 2 0.209534 0.747833 0.495963 1.127614
## gradeGrade 3 0.229145 0.617660 0.394186 0.967828
## hormoneYes 0.141622 1.338602 1.014152 1.766853
## menopauseYes 0.156860 0.898740 0.660867 1.222233
## nodes 0.007828 0.955322 0.940778 0.970091
## prog_recp_highhigh 0.118639 1.983828 1.572238 2.503166
## estrg_recp_highhigh 0.131849 1.195220 0.923035 1.547668
## hormoneYes:estrg_recp_highhigh 0.203847 0.838418 0.562271 1.250189
##
## N = 686, Events: 171, Censored: 515
## Total time at risk: 905940
## Log-likelihood = -1549.662, df = 11
## AIC = 3121.324
- Generalized F distribution:
fit_f
## Call:
## flexsurvreg(formula = Surv(survtime, censdead) ~ age + grade +
## hormone + menopause + nodes + prog_recp_high + estrg_recp_high +
## estrg_recp_high:hormone, data = dat, dist = "genf")
##
## Estimates:
## data mean est L95% U95%
## mu NA 7.996738 7.079463 8.914014
## sigma NA 0.919346 0.750812 1.125709
## Q NA -0.229813 -1.422660 0.963035
## P NA 0.164845 0.000123 221.425036
## age 53.052478 0.000525 -0.014175 0.015226
## gradeGrade 2 0.647230 -0.282591 -0.686339 0.121157
## gradeGrade 3 0.234694 -0.481120 -0.924282 -0.037958
## hormoneYes 0.358601 0.282895 0.000140 0.565650
## menopauseYes 0.577259 -0.112291 -0.420445 0.195863
## nodes 5.010204 -0.045952 -0.062027 -0.029877
## prog_recp_highhigh 0.507289 0.687605 0.455163 0.920047
## estrg_recp_highhigh 0.526239 0.169082 -0.093799 0.431963
## hormoneYes:estrg_recp_highhigh 0.204082 -0.168482 -0.570311 0.233348
## se exp(est) L95% U95%
## mu 0.468006 NA NA NA
## sigma 0.094988 NA NA NA
## Q 0.608607 NA NA NA
## P 0.605803 NA NA NA
## age 0.007500 1.000525 0.985925 1.015342
## gradeGrade 2 0.205998 0.753828 0.503416 1.128802
## gradeGrade 3 0.226107 0.618091 0.396816 0.962754
## hormoneYes 0.144266 1.326966 1.000140 1.760592
## menopauseYes 0.157224 0.893784 0.656754 1.216360
## nodes 0.008202 0.955088 0.939858 0.970565
## prog_recp_highhigh 0.118595 1.988947 1.576431 2.509409
## estrg_recp_highhigh 0.134125 1.184217 0.910466 1.540278
## hormoneYes:estrg_recp_highhigh 0.205019 0.844947 0.565350 1.262820
##
## N = 686, Events: 171, Censored: 515
## Total time at risk: 905940
## Log-likelihood = -1549.579, df = 13
## AIC = 3125.158
- Log-logistic distribution:
fit_ll
## Call:
## flexsurvreg(formula = Surv(survtime, censdead) ~ age + grade +
## hormone + menopause + nodes + prog_recp_high + estrg_recp_high +
## estrg_recp_high:hormone, data = dat, dist = "llogis")
##
## Estimates:
## data mean est L95%
## shape NA 2.011814 1.773916
## scale NA 3298.337359 1500.940978
## age 53.052478 -0.000577 -0.014906
## gradeGrade 2 0.647230 -0.316180 -0.766322
## gradeGrade 3 0.234694 -0.464565 -0.947973
## hormoneYes 0.358601 0.305006 0.035307
## menopauseYes 0.577259 -0.119315 -0.424690
## nodes 5.010204 -0.045954 -0.060699
## prog_recp_highhigh 0.507289 0.662928 0.432562
## estrg_recp_highhigh 0.526239 0.192737 -0.060285
## hormoneYes:estrg_recp_highhigh 0.204082 -0.210049 -0.606507
## U95% se exp(est)
## shape 2.281616 0.129176 NA
## scale 7248.139330 1324.956839 NA
## age 0.013753 0.007311 0.999423
## gradeGrade 2 0.133962 0.229668 0.728928
## gradeGrade 3 0.018843 0.246641 0.628408
## hormoneYes 0.574705 0.137604 1.356633
## menopauseYes 0.186060 0.155806 0.887528
## nodes -0.031210 0.007523 0.955086
## prog_recp_highhigh 0.893293 0.117536 1.940465
## estrg_recp_highhigh 0.445758 0.129095 1.212563
## hormoneYes:estrg_recp_highhigh 0.186409 0.202278 0.810545
## L95% U95%
## shape NA NA
## scale NA NA
## age 0.985204 1.013848
## gradeGrade 2 0.464719 1.143349
## gradeGrade 3 0.387526 1.019021
## hormoneYes 1.035938 1.776607
## menopauseYes 0.653972 1.204495
## nodes 0.941107 0.969272
## prog_recp_highhigh 1.541202 2.443163
## estrg_recp_highhigh 0.941496 1.561674
## hormoneYes:estrg_recp_highhigh 0.545252 1.204915
##
## N = 686, Events: 171, Censored: 515
## Total time at risk: 905940
## Log-likelihood = -1553.056, df = 11
## AIC = 3128.112
fit_gom
## Call:
## flexsurvreg(formula = Surv(survtime, censdead) ~ age + grade +
## hormone + menopause + nodes + prog_recp_high + estrg_recp_high +
## estrg_recp_high:hormone, data = dat, dist = "gompertz")
##
## Estimates:
## data mean est L95% U95%
## shape NA 0.0007614 0.0005942 0.0009286
## rate NA 0.0000534 0.0000139 0.0002049
## age 53.0524781 0.0035099 -0.0193137 0.0263335
## gradeGrade 2 0.6472303 0.6104095 -0.2353399 1.4561590
## gradeGrade 3 0.2346939 0.8372540 -0.0517391 1.7262471
## hormoneYes 0.3586006 -0.5528362 -0.9881466 -0.1175257
## menopauseYes 0.5772595 0.1611809 -0.3367654 0.6591271
## nodes 5.0102041 0.0671143 0.0488866 0.0853420
## prog_recp_highhigh 0.5072886 -1.0531903 -1.4348282 -0.6715524
## estrg_recp_highhigh 0.5262391 -0.3716242 -0.7872275 0.0439790
## hormoneYes:estrg_recp_highhigh 0.2040816 0.3999812 -0.2541661 1.0541285
## se exp(est) L95% U95%
## shape 0.0000853 NA NA NA
## rate 0.0000366 NA NA NA
## age 0.0116449 1.0035160 0.9808716 1.0266832
## gradeGrade 2 0.4315127 1.8411853 0.7903022 4.2894520
## gradeGrade 3 0.4535762 2.3100150 0.9495766 5.6195249
## hormoneYes 0.2221013 0.5753158 0.3722660 0.8891177
## menopauseYes 0.2540589 1.1748974 0.7140763 1.9331042
## nodes 0.0093000 1.0694177 1.0501013 1.0890895
## prog_recp_highhigh 0.1947168 0.3488231 0.2381563 0.5109148
## estrg_recp_highhigh 0.2120464 0.6896133 0.4551048 1.0449604
## hormoneYes:estrg_recp_highhigh 0.3337548 1.4917967 0.7755630 2.8694734
##
## N = 686, Events: 171, Censored: 515
## Total time at risk: 905940
## Log-likelihood = -1568.921, df = 11
## AIC = 3159.843