Skip to contents

Generate a new, resampled dataset of the same shape as data following the given model. The covariates X are kept the same. Survival times Y are drawn according to model$sample_yx() and censoring times C according to the KM estimator.

Usage

resample_param_cens(data, model)

Arguments

data

data.frame() with columns x, z and delta containing the original data

model

ParamRegrModel to use for the resampling

Value

data.frame() with columns x, z and delta containing the resampled data

Examples

# Create an example dataset
n <- 10
x <- cbind(runif(n), rbinom(n, 1, 0.5))
model <- NormalGLM$new()
params <- list(beta = c(2, 3), sd = 1)
y <- model$sample_yx(x, params = params)
c <- rnorm(n, mean(y) * 1.2, sd(y) * 0.5)
z <- pmin(y, c)
delta <- as.numeric(y <= c)
data <- dplyr::tibble(x = x, z = z, delta = delta)

# Fit the model to the data
model$fit(data, params_init = params, inplace = TRUE, loglik = loglik_xzd)

# Resample from the model given data
resample_param_cens(data, model)
#> # A tibble: 10 × 3
#>     x[,1]  [,2]      z delta
#>     <dbl> <dbl>  <dbl> <dbl>
#>  1 0.0870     1  1.86      1
#>  2 0.350      0  0.370     1
#>  3 0.635      1  2.32      0
#>  4 0.194      1  2.74      0
#>  5 0.663      0  0.666     1
#>  6 0.0106     0 -0.416     1
#>  7 0.628      0  1.57      1
#>  8 0.198      1  2.32      0
#>  9 0.168      0  0.338     1
#> 10 0.957      1  1.91      0