# Interval censored Cox proportional hazards model in R

Given interval censored survival times, how do I perform an interval censored Cox PH model in R? An rseek search turns up the package intcox, which no longer exists in the R repository. I'm almost positive the coxph function in the survival package cannot handle interval censored survival data.

Also, I don't want to impute the data and then use the coxph function. This method underestimates the standard errors of the coefficients because you are ignoring the uncertainty of the interval censoring.

• You can still install the intcox package even if it's not on CRAN using the normal install.packages("intcox"). – smillig Dec 12 '12 at 15:23
• Hmmm... I was not able to do that. Could the mirror selection affect the download? – wcampbell Dec 12 '12 at 15:27
• It's possible, but I don't know. I just used the Berlin CRAN to do it about 10 minutes ago (R version 2.15.1). – smillig Dec 12 '12 at 15:29
• The Survival Analysis CRAN Task View summarizes available packages for survival analysis, including a number with support for interval censoring. – jthetzel Apr 1 '14 at 0:52
• As of 21 Dec 2015, I was able to install.packages("intcox") without any particular trouble (R-devel, but any modern R should work) – Ben Bolker Dec 21 '14 at 21:41

As stated above, you can use the survreg function. A note though: this is not strictly a Cox PH model, but rather location-scale models. Using the default log-transformation, this is the aft model. In the case of the exponential distribution, the proportional hazards and aft model are equivalent, so if distribution is set to exponential, this is a proportional hazards model with an exponential baseline. Likewise, if a baseline Weibull distribution aft model is used, the parameter estimates are just a linear transformation of those used in the proportional hazards model with Weibull baseline distribution. But in general, survreg does not fit a Cox PH model.

If a semi-parametric model is desired, as found implemented in intcox, a word of caution: there are several issues with the current version of intcox (algorithm typically prematurely terminates significantly far from the MLE, fails outright with uncensored observations, no standard errors automatically presented).

A new alternative that you could use is the package "icenReg".

Admission of bias: this is the author of icenReg.

• Welcome to our site! We're glad to have you and your fine contributions. – whuber May 16 '15 at 20:16
• @Cliff AB What specific semi-parametric method do you use in the ic_sp function? Do you have a paper or tutorial about the method? – Munichong May 3 '18 at 16:01
• @Munichong: the full paper can be found here. Alternatively, the package's vignette gives a quick introduction to the models as well; see here – Cliff AB May 3 '18 at 18:38
• @CliffAB Since my data is too large to fit in the memory, I want to modify ic_sp in a stochastic way: Feed a mini-batch to ic_sp and set maxIter = 1, get the gradients and update betas iteratively. Do you know How I can access the gradients from the ic_sp function? – Munichong May 7 '18 at 14:16
• @Munichong: interesting! Unfortunately, I don't think this method will work. In particular, ic_sp needs to estimate the baseline survival distribution (unlike in right censored case), which has as many parameters as unique times in your data. This creates a problem for mini-batching; with continuous times, the baseline steps will not line up batch to batch. – Cliff AB May 7 '18 at 14:22

To do interval censored analysis in R, you must create a Surv object, and then use survfit(). If you have more than a variable, the intcox package solves the problem.