Cause-specific Cox proportional hazard regression
Interface for fitting cause-specific Cox proportional hazard regression models in competing risk.
CSC(formula, data, cause, surv.type = "hazard", fitter = "coxph", ...)
formula |
Either a single |
data |
A data in which to fit the models. |
cause |
The cause of interest. Defaults to the first cause (see Details). |
surv.type |
Either |
fitter |
Routine to fit the Cox regression models.
If |
... |
Arguments given to |
The causes and their order
are determined by prodlim::getStates()
applied to the Hist object.
models |
a list with the fitted (cause-specific) Cox regression objects |
response |
the event history response |
eventTimes |
the sorted (unique) event times |
surv.type |
the
value of |
theCause |
the cause of interest. see
|
causes |
the other causes |
Thomas A. Gerds tag@biostat.ku.dk and Ulla B. Mogensen
B. Ozenne, A. L. Soerensen, T.H. Scheike, C.T. Torp-Pedersen, and T.A. Gerds. riskregression: Predicting the risk of an event using Cox regression models. R Journal, 9(2):440–460, 2017.
J Benichou and Mitchell H Gail. Estimates of absolute cause-specific risk in cohort studies. Biometrics, pages 813–826, 1990.
T.A. Gerds, T.H. Scheike, and P.K. Andersen. Absolute risk regression for competing risks: Interpretation, link functions, and prediction. Statistics in Medicine, 31(29):3921–3930, 2012.
library(prodlim) library(survival) data(Melanoma) ## fit two cause-specific Cox models ## different formula for the two causes fit1 <- CSC(list(Hist(time,status)~sex+age,Hist(time,status)~invasion+epicel+log(thick)), data=Melanoma) print(fit1) ## Not run: library(Publish) publish(fit1) ## End(Not run) ## model hazard of all cause mortality instead of hazard of type 2 fit1a <- CSC(list(Hist(time,status)~sex+age,Hist(time,status)~invasion+epicel+log(thick)), data=Melanoma, surv.type="surv") ## the predicted probabilities are similar plot(predictRisk(fit1,times=500,cause=1,newdata=Melanoma), predictRisk(fit1a,times=500,cause=1,newdata=Melanoma)) ## special case where cause 2 has no covariates fit1b <- CSC(list(Hist(time,status)~sex+age,Hist(time,status)~1), data=Melanoma) print(fit1b) predict(fit1b,cause=1,times=100,newdata=Melanoma) ## same formula for both causes fit2 <- CSC(Hist(time,status)~invasion+epicel+age, data=Melanoma) print(fit2) ## combine a cause-specific Cox regression model for cause 2 ## and a Cox regression model for the event-free survival: ## different formula for cause 2 and event-free survival fit3 <- CSC(list(Hist(time,status)~sex+invasion+epicel+age, Hist(time,status)~invasion+epicel+age), surv.type="surv", data=Melanoma) print(fit3) ## same formula for both causes fit4 <- CSC(Hist(time,status)~invasion+epicel+age, data=Melanoma, surv.type="surv") print(fit4) ## strata fit5 <- CSC(Hist(time,status)~invasion+epicel+age+strata(sex), data=Melanoma, surv.type="surv") print(fit5) ## sanity checks cox1 <- coxph(Surv(time,status==1)~invasion+epicel+age+strata(sex),data=Melanoma) cox2 <- coxph(Surv(time,status!=0)~invasion+epicel+age+strata(sex),data=Melanoma) all.equal(coef(cox1),coef(fit5$models[[1]])) all.equal(coef(cox2),coef(fit5$models[[2]])) ## predictions ## ## surv.type = "hazard": predictions for both causes can be extracted ## from the same fit fit2 <- CSC(Hist(time,status)~invasion+epicel+age, data=Melanoma) predict(fit2,cause=1,newdata=Melanoma[c(17,99,108),],times=c(100,1000,10000)) predictRisk(fit2,cause=1,newdata=Melanoma[c(17,99,108),],times=c(100,1000,10000)) predictRisk(fit2,cause=2,newdata=Melanoma[c(17,99,108),],times=c(100,1000,10000)) predict(fit2,cause=1,newdata=Melanoma[c(17,99,108),],times=c(100,1000,10000)) predict(fit2,cause=2,newdata=Melanoma[c(17,99,108),],times=c(100,1000,10000)) ## surv.type = "surv" we need to change the cause of interest library(survival) fit5.2 <- CSC(Hist(time,status)~invasion+epicel+age+strata(sex), data=Melanoma, surv.type="surv",cause=2) ## now this does not work try(predictRisk(fit5.2,cause=1,newdata=Melanoma,times=4)) ## but this does predictRisk(fit5.2,cause=2,newdata=Melanoma,times=100) predict(fit5.2,cause=2,newdata=Melanoma,times=100) predict(fit5.2,cause=2,newdata=Melanoma[4,],times=100)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.