Learn R Programming

icenReg (version 1.3.5)

ic_sp: Semi-Parametric models for Interval Censored Data

Description

Fits a semi-parametric model for interval censored data. Can fit either a Cox-PH model or a proportional odds model. The covariance matrix for the regression coefficients is estimated via bootstrapping. For large datasets, this can become slow so parallel processing can be used to take advantage of multiple cores via the foreach package.

Usage

ic_sp(formula, data, model = 'ph', weights = NULL, bs_samples = 0, useMCores = F, useGA = T, maxIter = 5000, baseUpdates = 5)

Arguments

formula
regression formula. Response must be a Surv object of type 'interval2'or cbind. See details.
data
dataset
model
What type of model to fit. Current choices are "ph" (Cox PH) or "po" (proportional odds)
weights
Vector of case weights. Not standardized; see details
bs_samples
Number of bootstrap samples used for estimation of standard errors
useMCores
Should multiple cores be used for bootstrap sample? Does not register cluster (see example)
useGA
Should a gradient ascent step be used? See details
maxIter
Maximum iterations
baseUpdates
number of baseline updates (ICM + GA) per iteration

Details

Response variable should either be of the form cbind(l, u) or Surv(l, u, type = 'interval2'), where l and u are the lower and upper ends of the interval known to contain the event of interest. Uncensored data can be included by setting l == u, right censored data can be included by setting u == Inf or u == NA and left censored data can be included by setting l == 0. In regards to weights, they are not standardized. This means that if weight[i] = 2, this is the equivalent to having two observations with the same values as subject i.

The algorithm used is inspired by the extended ICM algorithm from Wei Pan 1999. However, it uses a conditional Newton Raphson step (for the regression parameters) and an ICM step (for the baseline survival parameters), rather than one single ICM step (for both sets). In addition, a gradient ascent can also be used to update the baseline parameters. This step is necessary if the data contains many uncensored observations, very similar to how the EM algorithm greatly accelerates the ICM algorithm for the NPMLE (gradient ascent is used rather than the EM, as the M step is not in closed form for semi-parametric models). Earlier versions of icenReg used an active set algorithm, which was not as fast for large datasets.

References

Pan, W., (1999), Extending the iterative convex minorant algorithm to the Cox model for interval-censored data, Journal of Computational and Graphical Statistics, Vol 8(1), pp109-120

Wellner, J. A., and Zhan, Y. (1997) A hybrid algorithm for computation of the maximum likelihood estimator from censored data, Journal of the American Statistical Association, Vol 92, pp945-959

Anderson-Bergman, C. (preprint) Revisiting the iterative convex minorant algorithm for interval censored survival regression models

Examples

Run this code
set.seed(1)

sim_data <- simIC_weib(n = 500, inspections = 5, inspectLength = 1)
ph_fit <- ic_sp(Surv(l, u, type = 'interval2') ~ x1 + x2, 
data = sim_data)	
# Default fits a Cox-PH model
	
summary(ph_fit)		
# Regression estimates close to true 0.5 and -0.5 values


new_data <- data.frame(x1 = c(0,1), x2 = c(1, 1) )
rownames(new_data) <- c('group 1', 'group 2')
plot(ph_fit, new_data)
# plotting the estimated survival curves

po_fit <- ic_sp(Surv(l, u, type = 'interval2') ~ x1 + x2, 
                data = sim_data, model = 'po')
# fits a proportional odds model
	
summary(po_fit)
	
# Not run: how to set up multiple cores
# library(doParallel)
# myCluster <- makeCluster(2) 
# registerDoParallel(myCluster)
# fit <- ic_sp(Surv(l, u, type = 'interval2') ~ x1 + x2,
#              data = sim_data, useMCores = TRUE
#              bs_samples = 500)
# stopCluster(myCluster)

Run the code above in your browser using DataLab