kmi: Kaplan-Meier Multiple Imputation for Competing Risks

Description Usage Arguments Details Value Warning Note Author(s) References See Also Examples

Description

The function performs a non parametric multiple imputation that aims at recovering the missing potential censoring times from competing events.

Usage

1
2
kmi(formula, data, id = NULL, etype, failcode = 1, nimp = 10,
    epsilon = 1, bootstrap = FALSE, nboot = 10)

Arguments

formula

A formula object, that must have a Surv object on the left of a ~ operator. Covariates could be added on the right hand side of the formula. They will be used to model the censoring distribution. See Details.

data

A data.frame in which to interpret the variables given in the formula, etype and id. It is mandatory.

id

Used to identify individual subjects when one subject can have several rows of data, e.g., with time-dependent covariates. Set to NULL when there is only one raw of data per subject.

etype

Variable specifying the type of competing event. When status == 1 in formula, etype describes the type of event, otherwise, for censored observation, (status == 0), the value of etype is ignored.

failcode

Indicates the failure cause of interest. Imputation will be performed on the other competing events. Default is 1.

nimp

Number of multiple imputation. Default is 10.

epsilon

When the last time is an event, a censoring time equal to max(time) + epsilon is added. By default, epsilon is set to 1.

bootstrap

Logical. Whether to estimate the censoring distribution using bootstrap samples. Default is FALSE.

nboot

If bootstrap is set to TRUE, nboot determines the number of bootstrap samples.

Details

It was shown that if censoring times are observed for all individuals, methods for standard right-censored survival data can be used to analyse cumulative incidence functions from competing risks (Fine and Gray 1999). Therefore the idea proposed by Ruan and Gray (2008) is to impute potential censoring times for individuals who have failed from the competing events. The censoring times are imputed from the conditional Kaplan-Meier estimator of the censoring distribution.

Estimation of the censoring distribution may be improved through bootstrapping. Estimation might also be improved fitting a model for the censoring distribution. When covariates are given, a proportional hazards model on the hazard of censoring is fit. The censoring times are then imputed from the estimated model.

The competing risks model formulation in formula mimics the one in survfit.

Value

An object of class kmi with the following components:

imputed.data

A list of matrices giving the imputed times in the first column and imputed event type in the second column. The event status for imputed times take value 0 (censored).

original.data

The original data set

info

Gives the names of the time and event indicator column in the original data set.

call

The matched call.

Warning

When a proportional hazards model is fit for modelling the censoring distribution, the censoring times are imputed from the imputed model. When there is missing covariate information for the prediction, mean imputation is used.

Note

This multiple imputation technique does not work for left-truncated data.

Author(s)

Arthur Allignol, arthur.allignol@gmail.com

References

Ruan, P.K. and Gray, R.J. (2008). Analyses of cumulative incidence functions via non-parametric multiple imputation. Statistics in Medicine, 27(27):5709–5724.

Allignol, A. and Beyersmann, J. (2010). Software for fitting nonstandard proportional subdistribution hazards models. Biostatistics, doi:10.1093/biostatistics/kxq018

Fine, J.P. and Gray, R.J. (1999). A Proportional Hazards Model for the Subdistribution of a Competing Risk. Journal of the American Statistical Association. 94(446):496–509.

See Also

icu.pneu, cox.kmi, Surv, survfit

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
data(icu.pneu)

if (require(survival)) {
    
    dat <- kmi(Surv(start, stop, status) ~ 1, data = icu.pneu,
               etype = event, id= id, failcode = 2, nimp = 5)
    
    ## another way to specify the formula if there is no status
    ## variable
    icu.pneu$ev <- icu.pneu$event
    icu.pneu$ev[icu.pneu$status == 0] <- 0
    
    dat <- kmi(Surv(start, stop, ev != 0) ~ 1, data = icu.pneu,
               etype = ev, id= id, failcode = 2, nimp = 5)
    
    ## with covariates to model the censoring distribution
    dat.cova <- kmi(Surv(start, stop, status) ~ age + sex,
                    data = icu.pneu, etype = event, id = id,
                    failcode = 2, nimp = 5)
    
}

aallignol/kmi documentation built on June 4, 2019, 3:05 a.m.