
Dependent-Censoring Transformation Inference for Survival Responses
Source:R/inference_survival_dep_cens_transform.R
InferenceSurvivalDepCensTransformRegr.RdFits a joint bivariate log-normal transformation model for a latent event
time \(T^E_i\) and a latent censoring time \(T^C_i\) that are allowed
to be dependent (a violation of the usual independent-censoring
assumption): \(\log T^E_i = X_i^\top \beta_{\mathrm{event}} +
\sigma_{\mathrm{event}} \epsilon^E_i\), \(\log T^C_i = X_i^\top
\beta_{\mathrm{cens}} + \sigma_{\mathrm{cens}} \epsilon^C_i\), with
\((\epsilon^E_i, \epsilon^C_i)\) jointly standard bivariate normal with
correlation \(\rho\) (estimated via an atanh-reparameterized,
clamped nuisance parameter). \(X_i\) includes the treatment indicator
\(W_i\) as its first column, so \(\hat\beta_T\) (the first entry of
\(\hat\beta_{\mathrm{event}}\)) is a log-time-ratio for the
event submodel, on the same AFT interpretation scale as
InferenceSurvivalWeibullRegr
but log-normal rather than Weibull, and jointly modeling the censoring
mechanism rather than assuming it independent. This is the correct tool
when censoring is suspected to depend on the same latent factors driving
the event time (e.g. sicker patients are both more likely to be censored
— dropout — and more likely to fail early), a scenario under which
ordinary Kaplan-Meier/Cox/AFT methods (which assume independent
censoring) are biased. likelihood_tier = "full": likelihood-ratio,
score, gradient, and Wald tests are available when the model converges,
plus parametric-likelihood-bootstrap calibration of the likelihood-ratio
test. Substantial method-support limitations, all deliberate:
randomization inference and jackknife bias correction/standard errors are
hard-unsupported (each randomization draw would require a full
dependent-censoring likelihood refit, too unstable/slow for the
comprehensive test suite; jackknife bias correction is unstable for this
likelihood on small censored samples) — every jackknife/randomization
method returns NA and marks the result nonestimable rather than
computing a value. Nonparametric-bootstrap confidence intervals are
computed but additionally validated/sanity-checked (excessively wide or
zero-excluding-by-construction intervals are treated as unstable and
replaced with NA), and Bayesian-bootstrap weighted re-estimation
uses a fast Cox-model surrogate fit (weighted_cox_bootstrap_surrogate_fit())
as an approximation rather than a full weighted joint-likelihood refit.
See also
InferenceSurvivalGLMMWeibullFrailtyLoggammaOneLik
for a different (Clayton-copula, KK-design) approach to dependence
between two survival-type quantities.
Survival
analysis (Wikipedia, general orientation; no direct Wikipedia page for
dependent-censoring copula/transformation models specifically).
Super class
Inference -> InferenceSurvivalDepCensTransformRegr
Methods
+ inherited public methods from Inference
Inference$capabilities()Inference$compute_asymp_confidence_interval()Inference$compute_asymp_two_sided_pval()Inference$compute_estimate()Inference$compute_exact_confidence_interval()Inference$compute_exact_two_sided_pval_for_treatment_effect()Inference$duplicate()Inference$get_analysis_data()Inference$get_covariates()Inference$get_design_object()Inference$get_model_formula()Inference$get_nonestimable_reason()Inference$get_nonestimable_stage()Inference$get_optimization_alg()Inference$get_response()Inference$get_response_type()Inference$get_treatment()Inference$initialize()Inference$is_nonestimable()Inference$set_optimization_alg()Inference$set_seed()Inference$supports()
Examples
# \donttest{
seq_des = DesignSeqOneByOneBernoulli$new(n = 10, response_type = 'survival')
for (i in 1:10) {
seq_des$add_one_subject_to_experiment_and_assign(data.frame(x1 = rnorm(1)))
}
seq_des$add_all_subject_responses(runif(10))
inf = InferenceSurvivalDepCensTransformRegr$new(seq_des)
inf$compute_estimate()
#> [1] -0.281564
# }