Skip to contents

Estimates a treatment log-rate-ratio \(\beta_T\) for count outcomes collected under a KK matching-on-the-fly design (DesignSeqOneByOneKK14 or subclass) by maximizing a single combined likelihood that couples a conditional (within-matched-pair, intercept-free) Poisson likelihood for matched subjects with an ordinary Poisson likelihood for reservoir subjects, sharing one treatment coefficient across both pieces. This is the "one-likelihood" alternative to the inverse-variance-weighted combination (...IVWC pattern used elsewhere in the KK family): rather than fitting matched and reservoir models separately and pooling by inverse-variance weights, the treatment coefficient here is estimated jointly from the full combined log-likelihood, and its standard error, score, likelihood-ratio, and gradient statistics are all "design-conservative" – each is the pointwise-wider of the model-based asymptotic quantity and a design-based quantity computed by treating the estimate as a plug-in statistic under InferenceAsymp's \(z\)/\(t\) machinery, so inference never overstates precision relative to the design alone.

Details

Estimand. \(\beta_T\), the treatment coefficient in a log-linear (Poisson) mean model \(E[Y \mid w, x] = \exp(\beta_0 + \beta_T w + x\beta)\), interpreted as a log rate ratio (equivalently, \(\exp(\hat\beta_T)\) is the treatment-vs-control incidence rate ratio).

Model. Matched subjects contribute a conditional-Poisson term that eliminates the pair-specific nuisance intercept by conditioning on the pair total count (removing the need to estimate one intercept per pair); reservoir subjects contribute an ordinary Poisson log-likelihood with a single shared intercept. Both pieces are summed into one combined negative log-likelihood and maximized jointly in \((\beta_0, \beta_T, \beta)\) (see get_cpoisson_combined_hessian_cpp and fast_cpoisson_combined_with_var_cpp for the backend fitting contract). likelihood_tier = "full", so likelihood-ratio, score, and gradient tests and a parametric likelihood bootstrap are all available in addition to the design-conservative Wald path.

Assumptions. Independence of counts across matched pairs and reservoir subjects given covariates; correct log-linear 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. (2014). "Matching on-the-fly: A group sequential covariate balanced randomization procedure." arXiv preprint arXiv:1305.6259. (KK14 in REFERENCES.md.)

See also

Analogous Python API for count models: statsmodels discrete models (ConditionalPoisson, Poisson). Poisson regression (orientation).

Super class

Inference -> InferenceCountKKCondPoissonOneLik

Methods

+ inherited public methods from Inference


InferenceCountKKCondPoissonOneLik$set_custom_randomization_statistic_function()

Usage

InferenceCountKKCondPoissonOneLik$set_custom_randomization_statistic_function(
  custom_randomization_statistic_function
)


InferenceCountKKCondPoissonOneLik$set_custom_randomization_statistic_cpp()

Usage

InferenceCountKKCondPoissonOneLik$set_custom_randomization_statistic_cpp(fn)


InferenceCountKKCondPoissonOneLik$approximate_randomization_distribution_beta_hat_T()

Usage

InferenceCountKKCondPoissonOneLik$approximate_randomization_distribution_beta_hat_T(
  r = 501,
  delta = 0,
  transform_responses = "none",
  show_progress = TRUE,
  permutations = NULL,
  debug = FALSE,
  zero_one_logit_clamp = .Machine$double.eps
)


InferenceCountKKCondPoissonOneLik$supports_rand_pval_for_incidence()

Usage

InferenceCountKKCondPoissonOneLik$supports_rand_pval_for_incidence()


InferenceCountKKCondPoissonOneLik$compute_rand_two_sided_pval()

Usage

InferenceCountKKCondPoissonOneLik$compute_rand_two_sided_pval(
  r = 501,
  delta = 0,
  transform_responses = "none",
  na.rm = TRUE,
  show_progress = TRUE,
  permutations = NULL,
  zero_one_logit_clamp = .Machine$double.eps
)


InferenceCountKKCondPoissonOneLik$clone()

The objects of this class are cloneable with this method.

Usage

InferenceCountKKCondPoissonOneLik$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.