
One-Likelihood Conditional-Logistic Inference for KK Binary Designs
Source:R/inference_incidence_KK_cond_logit.R
InferenceIncidKKCondLogitOneLik.RdEstimates a treatment log-odds-ratio \(\beta_T\) for binary
(incidence) outcomes collected under a KK matching-on-the-fly design
(DesignSeqOneByOneKK14 or
subclass) by maximizing one combined likelihood that couples a
conditional-logistic (intercept-free, within-matched-pair) likelihood
for matched subjects with an ordinary logistic likelihood for reservoir
subjects, sharing a single treatment coefficient across both pieces.
This is the "one-likelihood" counterpart to
InferenceIncidKKCondLogitIVWC,
which instead fits the matched and reservoir pieces separately and
pools them by inverse-variance weighting; here the treatment coefficient
is a single joint MLE, and likelihood_tier = "full" exposes
likelihood-ratio, score, and gradient inference plus a parametric
likelihood bootstrap in addition to Wald.
Details
Estimand. \(\beta_T\), the treatment coefficient of a logistic mean model \(\mathrm{logit}(P(Y=1 \mid w,x)) = \beta_0 + \beta_T w + x\beta\); \(\exp(\hat\beta_T)\) is the treatment-vs-control odds ratio.
Model. Matched pairs contribute McFadden-style conditional
logistic likelihood terms that condition away the pair-specific nuisance
intercept (see build_matching_combined_clogit_design_cpp/
collect_discordant_pairs_cpp); reservoir subjects contribute an
ordinary logistic likelihood with one shared intercept. The combined
negative log-likelihood is minimized jointly in
\((\beta_0, \beta_T, \beta)\) via fast_logistic_regression_cpp/
fast_logistic_regression_with_var_cpp. When
get_testing_type() != "wald", asymptotic CI/p-value calls are
routed through InferenceAsympLik's
generic score/likelihood-ratio/gradient dispatch instead of the
design's own Wald machinery.
Assumptions. Independence across matched pairs and reservoir
subjects given covariates; correct logistic mean specification; a KK
matching-on-the-fly design supplying the matched/reservoir partition.
No response censoring is supported (checked at construction via
assertNoCensoring()).
References
Kapelner, A., and Krieger, A. M. (2014). "Matching on-the-fly: Sequential
allocation with higher power and efficiency." Biometrics, 70(2),
378-388. doi:10.1111/biom.12148
. (KK14 in REFERENCES.md.)
See also
Analogous Python API for conditional logistic regression:
statsmodels
discrete models (ConditionalLogit).
Logistic
regression (orientation).
Super class
Inference -> InferenceIncidKKCondLogitOneLik
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()