Skip to contents

Fits 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 and returned whenever both endpoints are finite; they are never replaced based on width, sign, or agreement with a Wald interval. Numerical failures return NA. 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.

Whether compute_rand_two_sided_pval() is actually usable on this instance right now – FALSE exactly when it would stop(): an incidence-response instance with no custom randomization statistic and a design not eligible for design-randomization-based incidence inference (see private$should_use_design_randomization_for_incidence()). TRUE for every other case, including every non-incidence response type. Public, self-contained (only reads already-set instance state, no side effects), so InferenceSuite can check this before attempting the sentinel instead of relying on the stop() being silently swallowed into a pval = NA "ok" row – the single source of truth for both this check and compute_rand_two_sided_pval()'s own guard, so the two can never drift apart.

Value

A single logical.

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

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.905532
# }