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.

  • 1
    $\begingroup$ You can still install the intcox package even if it's not on CRAN using the normal install.packages("intcox"). $\endgroup$
    – smillig
    Commented Dec 12, 2012 at 15:23
  • $\begingroup$ Hmmm... I was not able to do that. Could the mirror selection affect the download? $\endgroup$
    – wcampbell
    Commented Dec 12, 2012 at 15:27
  • 1
    $\begingroup$ 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). $\endgroup$
    – smillig
    Commented Dec 12, 2012 at 15:29
  • 2
    $\begingroup$ The Survival Analysis CRAN Task View summarizes available packages for survival analysis, including a number with support for interval censoring. $\endgroup$
    – jthetzel
    Commented Apr 1, 2014 at 0:52
  • 1
    $\begingroup$ As of 21 Dec 2015, I was able to install.packages("intcox") without any particular trouble (R-devel, but any modern R should work) $\endgroup$
    – Ben Bolker
    Commented Dec 21, 2014 at 21:41

2 Answers 2


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.

  • 1
    $\begingroup$ Welcome to our site! We're glad to have you and your fine contributions. $\endgroup$
    – whuber
    Commented May 16, 2015 at 20:16
  • $\begingroup$ @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? $\endgroup$
    – Munichong
    Commented May 3, 2018 at 16:01
  • $\begingroup$ @Munichong: the full paper can be found here. Alternatively, the package's vignette gives a quick introduction to the models as well; see here $\endgroup$
    – Cliff AB
    Commented May 3, 2018 at 18:38
  • 1
    $\begingroup$ @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. $\endgroup$
    – Cliff AB
    Commented May 7, 2018 at 14:22
  • 1
    $\begingroup$ Something like a parametric approach, in which the baseline distribution is parameterized by 2 fixed parameters, would likely work. Unfortunately, in icenReg, all the derivatives are computed at the C++ level and are not readily accessible in R. $\endgroup$
    – Cliff AB
    Commented May 7, 2018 at 14:23

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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.