12

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.

Nick Stauner
  • 12,342
  • 5
  • 52
  • 110
wcampbell
  • 2,197

2 Answers2

11

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.

Cliff AB
  • 20,980
  • 1
    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 03 '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 03 '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 07 '18 at 14:16
  • 1
    @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 07 '18 at 14:22
  • 1
    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. – Cliff AB May 07 '18 at 14:23
1

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.