sim_npdf {discfrail}R Documentation

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)

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.

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.

References

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

Examples

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 )

[Package discfrail version 0.1 Index]