Learn R Programming

PWEXP (version 0.5.0)

cv.pwexp.fit: Cross Validate a Piecewise Exponential Model

Description

Cross Validate a existing piecewise exponential model.

Usage

# S3 method for default
cv.pwexp.fit(time, event, nfold=5, nsim=100, breakpoint=NULL,
             nbreak=0, exclude_int=NULL, min_pt_tail=5, max_set=1000, seed=1818,
             optimizer='mle', tol=1e-4, parallel=FALSE, mc.core=4, ...)
# S3 method for pwexp.fit
cv.pwexp.fit(time, nfold=5, nsim=100, max_set=1000, seed=1818,
             optimizer='mle', tol=1e-4, parallel=FALSE, mc.core=4, ...)

Value

A vector of length nsim containing the CV log likelihood in each round of simulation.

Arguments

time

observed time from randomization or a pwexp.fit object.

event

the status indicator. See pwexp.fit.

nfold

the number of folds used in CV.

nsim

the number of simulations.

breakpoint

pre-specified breakpoints. See pwexp.fit.

nbreak

total number of breakpoints. See pwexp.fit.

exclude_int

an interval that excludes any estimated breakpoints. See pwexp.fit.

min_pt_tail

the minimum number of events used for estimating the tail (the hazard rate of the last piece). See pwexp.fit.

max_set

maximum estimated combination of breakpoints. See pwexp.fit.

seed

a random seed.

optimizer

one of the optimizers: mle, ols, or hybrid. See pwexp.fit.

tol

the minimum allowed gap between two breakpoints. The gap is calculated as (max(time)-min(time))*tol. Keep it as default in most cases.

parallel

logical. If TRUE, use doSNOW package to run in parallel.

mc.core

number of processes allowed to be run in parallel.

...

internal function reserved.

Author

Tianchen Xu zjph602xutianchen@gmail.com

Details

Use cross validation obtain the prediction log likelihood.

See Also

pwexp.fit

Examples

Run this code
event_dist <- function(n)rpwexp(n, rate = c(0.1, 0.01, 0.2), breakpoint =  c(5,14))
dat <- simdata(rand_rate = 20, drop_rate = 0.03,  total_sample = 1000,
               advanced_dist = list(event_dist=event_dist),
               add_column = c('censor_reason','event','followT','followT_abs'))

# here nsim=10 is for demo purpose, pls increase it in practice!!
# \donttest{
cv0 <- cv.pwexp.fit(dat$followT, dat$event, nsim = 10, nbreak = 0)
cv1 <- cv.pwexp.fit(dat$followT, dat$event, nsim = 10, nbreak = 1)
cv2 <- cv.pwexp.fit(dat$followT, dat$event, nsim = 10, nbreak = 2)
sapply(list(cv0,cv1,cv2), median)
# }

Run the code above in your browser using DataLab