CSC | R Documentation |
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.
coxph
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.