Skip to contents

Fits a single stacked robust regression over matched-pair differences and reservoir observations for KK matching-on-the-fly designs with continuous responses.

Computes the randomization distribution of the treatment effect estimate under the sharp null.

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.

Computes a randomization-based p-value.

Value

When debug = FALSE (default), a numeric vector of length r. When debug = TRUE, a list with: values, errors (list of character vectors, one per iteration), warnings (list of character vectors, one per iteration), num_errors, num_warnings, prop_iterations_with_errors, prop_iterations_with_warnings, and prop_illegal_values.

A single logical.

Randomization p-value.

Details

Model. Analogous to InferenceContinKKOLSOneLik's single stacked design (matched-pair difference rows plus reservoir rows fit in one regression, treatment coefficient \(\beta_T\)), but fit with a robust M/MM-estimator (MASS::rlm, or an internal Rcpp IRLS kernel when use_rcpp = TRUE) instead of ordinary least squares. "MM" (the default method) starts from an LQS-based high-breakdown fit; "M" can warm-start from OLS (start_with_ols = TRUE).

Likelihood tier. likelihood_tier = "quasi": the robust objective is not a normalized likelihood, so only Wald-type asymptotic inference is available (compute_wald_confidence_interval()/ compute_wald_two_sided_pval(), aliased by the standard compute_asymp_* names) — no score/gradient/likelihood-ratio testing types, unlike the OLS one-likelihood sibling.

Assumptions. Continuous response; independent matched pairs and/or independent reservoir subjects; no censoring; a KK matching-on-the-fly design. Robust regression trades some efficiency under exactly-Gaussian errors for resistance to outliers and heavy tails.

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

InferenceContinKKRobustRegrIVWC for the inverse-variance-weighted-combination alternative to this one-likelihood combined-fit approach. Analogous Python API: statsmodels RLM.

Super class

Inference -> InferenceContinKKRobustRegrOneLik

Methods

+ inherited public methods from Inference


InferenceContinKKRobustRegrOneLik$approximate_randomization_distribution_beta_hat_T()

Usage

InferenceContinKKRobustRegrOneLik$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
)

Arguments

r

Number of randomization vectors. Default 501.

r

Number of randomization vectors.

delta

The null difference. Default 0.

delta

Null difference.

transform_responses

Type of transformation. Default "none".

transform_responses

Transformation.

show_progress

Show progress bar. Default TRUE.

show_progress

Show progress.

permutations

Pre-computed permutations. Default NULL.

permutations

Pre-computed permutations.

debug

If TRUE, return a list with the distribution values and per-iteration diagnostics including error messages, warning messages, counts of each, and summary proportions for iterations with errors, warnings, and illegal (non-finite) values. Runs serially. Default FALSE.

zero_one_logit_clamp

The clamping amount for exact 0 and 1 values when logging

zero_one_logit_clamp

The clamping amount for exact 0 and 1 values when logging


InferenceContinKKRobustRegrOneLik$supports_rand_pval_for_incidence()

Usage

InferenceContinKKRobustRegrOneLik$supports_rand_pval_for_incidence()


InferenceContinKKRobustRegrOneLik$compute_rand_two_sided_pval()

Usage

InferenceContinKKRobustRegrOneLik$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
)

Arguments

r

Number of randomization vectors. Default 501.

r

Number of randomization vectors.

delta

The null difference. Default 0.

delta

Null difference.

transform_responses

Type of transformation. Default "none".

transform_responses

Transformation.

na.rm

Remove NAs.

show_progress

Show progress bar. Default TRUE.

show_progress

Show progress.

permutations

Pre-computed permutations. Default NULL.

permutations

Pre-computed permutations.

zero_one_logit_clamp

The clamping amount for exact 0 and 1 values when logging

zero_one_logit_clamp

The clamping amount for exact 0 and 1 values when logging


InferenceContinKKRobustRegrOneLik$clone()

The objects of this class are cloneable with this method.

Usage

InferenceContinKKRobustRegrOneLik$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.