Learn R Programming

discfrail (version 0.2)

sim_npdf: Simulation of grouped time-to-event data with nonparametric baseline hazard and discrete shared frailty distribution

Description

This function returns a dataset generated from a semiparametric proportional hazards model with a shared discrete frailty term, for given cumulative baseline hazard function, hazard ratios, distribution of groups among latent populations, frailty values for each latent population, and randomly-generated covariate values.

Usage

sim_npdf(J, N = NULL, beta, Lambda_0_inv, p, w_values, cens_perc)

Value

A data frame with one row for each simulated individual, and the following columns:

family: the group which the individual is in (integers 1, 2, ...)

time: the simulated event time.

status: the simulated survival status. Censoring times are generated from a Normal distribution with standard deviation equal to 1 and the mean is estimated in order to guarantee the determined percentage of censored events. The event time is observed (status=1) if it is less than the censoring time, and censored otherwise (status=0).

x: matrix of covariate values, generated from a standard normal distribution.

belong: the frailty hazard ratio corresponding to the cluster of groups in which the individual's group has been allocated.

Arguments

J

number of groups in the data

N

number of individuals in each group

beta

vector of log hazard ratios

Lambda_0_inv

inverse cumulative baseline hazard function, that is, with covariate values 0 and frailty ratio 1

p

vector of K elements. The kth element gives the proportion of groups in the kth latent population of groups.

w_values

vector of K distinct frailty values, one for each latent population.

cens_perc

percentage of censored events. Censoring times are assumed to be distributed as a Normal with variance equal to 1.

References

Wan, F. (2017). Simulating survival data with predefined censoring rates for proportional hazards models. Statistics in medicine, 36(5), 838-854.

Examples

Run this code
J <- 100
N <- 40
Lambda_0_inv = function( t, c=0.01, d=4.6 ) ( t^( 1/d ) )/c
beta <- 1.6
p <- c( 0.8, 0.2 )
w_values <- c( 0.8, 1.6 )
cens_perc <- 0.1
data <- sim_npdf( J, N, beta, Lambda_0_inv, p, w_values, cens_perc )
head( data )

Run the code above in your browser using DataLab