Skip to contents

Fits a binomial regression with the log link for binary (incidence) responses: \(\log P(Y_i = 1) = \beta_0 + \beta_T W_i + X_i^\top \gamma\), where \(W_i\) is the treatment indicator and \(X_i\) are optional recorded covariates, by maximum likelihood (fast_log_binomial_regression_cpp/ fast_log_binomial_regression_weighted_cpp). \(\hat\beta_T\) is a log risk ratio: \(\exp(\hat\beta_T)\) is the estimated treatment risk ratio (relative risk) directly, unlike the log-odds-ratio from InferenceIncidLogRegr's logit link. likelihood_tier = "full": Wald, score, gradient, and likelihood-ratio tests are all available when the model converges, plus parametric-likelihood-bootstrap calibration of the likelihood-ratio test. Because the log link does not constrain fitted probabilities to \([0,1]\) (only to \([0,\infty)\)), fits are hardened by QR column-dropping and a coefficient-magnitude cap (max_abs_reasonable_coef) and rejected as nonestimable when the fit is implausible — the same practical limitation as the identity-link sibling InferenceIncidBinomialIdentityRiskDiff, here applying to the upper rather than both tails of the probability scale. Validity requires the multiplicative log-linear risk model to be correctly specified over the covariate range observed.

References

McCullagh, P., and Nelder, J. A. (1989). Generalized Linear Models (2nd ed.). Chapman and Hall/CRC, for the binomial GLM family and log-link relative-risk parameterization.

See also

InferenceIncidLogRegr (logit link, log-odds-ratio estimand), InferenceIncidBinomialIdentityRiskDiff (identity link, risk-difference estimand) for alternative link/estimand choices on the same response type. Comparable Python API: statsmodels GLM (family=Binomial(link=log())). See also: Generalized linear model (Wikipedia).

Super class

Inference -> InferenceIncidLogBinomial

Methods

+ inherited public methods from Inference


InferenceIncidLogBinomial$set_custom_randomization_statistic_function()

Usage

InferenceIncidLogBinomial$set_custom_randomization_statistic_function(
  custom_randomization_statistic_function
)


InferenceIncidLogBinomial$set_custom_randomization_statistic_cpp()

Usage

InferenceIncidLogBinomial$set_custom_randomization_statistic_cpp(fn)


InferenceIncidLogBinomial$approximate_randomization_distribution_beta_hat_T()

Usage

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


InferenceIncidLogBinomial$supports_rand_pval_for_incidence()

Usage

InferenceIncidLogBinomial$supports_rand_pval_for_incidence()


InferenceIncidLogBinomial$clone()

The objects of this class are cloneable with this method.

Usage

InferenceIncidLogBinomial$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# \donttest{
seq_des = DesignSeqOneByOneBernoulli$new(n = 10, response_type = 'incidence')
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(rbinom(10, 1, 0.5))
inf = InferenceIncidLogBinomial$new(seq_des)
inf$compute_estimate()
#> [1] NA
# }