
Modified-Poisson Inference for KK Designs with Binary Responses
Source:R/inference_incidence_KK_marginal.R
InferenceIncidKKModifiedPoisson.RdFits Zou's (2004) modified-Poisson working model for binary incidence
outcomes under a KK matching-on-the-fly design: a log-link Poisson model
\(\log E[Y_i \mid w_i, x_i] = \beta_0 + \beta_T w_i + x_i^\top \gamma\)
is fit to the binary (0/1) response by ordinary Poisson maximum likelihood
(a working, misspecified likelihood — the true response is Bernoulli, not
Poisson), and the coefficient standard errors are corrected by a
cluster-robust sandwich covariance rather than the (invalid, for a
misspecified likelihood) model-based Poisson information. Matched pairs
are treated as clusters (2 members) and reservoir subjects as singleton
clusters when computing the sandwich covariance, so the matched-pair
correlation induced by the design is accounted for even though the
modified-Poisson working model itself does not encode it directly.
\(\exp(\hat\beta_T)\) is the estimated risk ratio, directly interpretable
unlike a logistic regression's odds ratio (which only approximates the
risk ratio when the outcome is rare). likelihood_tier = "none"
(the sandwich-corrected inference is not a normalized model likelihood):
only Wald inference is exposed. See
InferenceAbstractKKMarginalIncid
for the shared marginal-incidence fitting contract.
References
Zou, G. (2004). "A Modified Poisson Regression Approach to Prospective Studies with Binary Data." American Journal of Epidemiology, 159(7), 702-706, doi:10.1093/aje/kwh090 ; 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 , for the KK matching-on-the-fly design this class is built for.
See also
InferenceIncidModifiedPoisson
for the non-KK analog.
Super classes
Inference -> InferenceAbstractKKMarginalIncid -> InferenceAbstractKKModifiedPoisson -> InferenceIncidKKModifiedPoisson
Methods
+ inherited public methods from InferenceAbstractKKModifiedPoisson
+ inherited public methods from InferenceAbstractKKMarginalIncid
InferenceAbstractKKMarginalIncid$approximate_bayesian_bootstrap_distribution_beta_hat_T()InferenceAbstractKKMarginalIncid$approximate_bootstrap_distribution_beta_hat_T()InferenceAbstractKKMarginalIncid$approximate_jackknife_distribution_beta_hat_T()InferenceAbstractKKMarginalIncid$approximate_m_out_of_n_bootstrap_distribution_beta_hat_T()InferenceAbstractKKMarginalIncid$approximate_rand_bootstrap_distribution_beta_hat_T()InferenceAbstractKKMarginalIncid$approximate_randomization_distribution_beta_hat_T()InferenceAbstractKKMarginalIncid$approximate_subsampling_distribution_beta_hat_T()InferenceAbstractKKMarginalIncid$compute_bayesian_bootstrap_confidence_interval()InferenceAbstractKKMarginalIncid$compute_bayesian_bootstrap_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_bootstrap_confidence_interval()InferenceAbstractKKMarginalIncid$compute_bootstrap_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_gradient_confidence_interval()InferenceAbstractKKMarginalIncid$compute_gradient_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_jackknife_bias_estimate()InferenceAbstractKKMarginalIncid$compute_jackknife_estimate()InferenceAbstractKKMarginalIncid$compute_jackknife_std_error()InferenceAbstractKKMarginalIncid$compute_jackknife_wald_confidence_interval()InferenceAbstractKKMarginalIncid$compute_jackknife_wald_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_lik_ratio_bartlett_approx_confidence_interval()InferenceAbstractKKMarginalIncid$compute_lik_ratio_bartlett_approx_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_lik_ratio_bartlett_confidence_interval()InferenceAbstractKKMarginalIncid$compute_lik_ratio_bartlett_exact_confidence_interval()InferenceAbstractKKMarginalIncid$compute_lik_ratio_bartlett_exact_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_lik_ratio_bartlett_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_lik_ratio_bootstrap_confidence_interval()InferenceAbstractKKMarginalIncid$compute_lik_ratio_bootstrap_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_lik_ratio_confidence_interval()InferenceAbstractKKMarginalIncid$compute_lik_ratio_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_m_out_of_n_bootstrap_confidence_interval()InferenceAbstractKKMarginalIncid$compute_m_out_of_n_bootstrap_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_param_bootstrap_confidence_interval()InferenceAbstractKKMarginalIncid$compute_param_bootstrap_estimate()InferenceAbstractKKMarginalIncid$compute_param_bootstrap_pval()InferenceAbstractKKMarginalIncid$compute_rand_bootstrap_confidence_interval()InferenceAbstractKKMarginalIncid$compute_rand_bootstrap_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_rand_confidence_interval()InferenceAbstractKKMarginalIncid$compute_rand_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_score_confidence_interval()InferenceAbstractKKMarginalIncid$compute_score_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_subsampling_confidence_interval()InferenceAbstractKKMarginalIncid$compute_subsampling_sensitivity()InferenceAbstractKKMarginalIncid$compute_subsampling_two_sided_pval()InferenceAbstractKKMarginalIncid$compute_wald_confidence_interval()InferenceAbstractKKMarginalIncid$compute_wald_two_sided_pval()InferenceAbstractKKMarginalIncid$get_information_preference()InferenceAbstractKKMarginalIncid$get_information_source_used()InferenceAbstractKKMarginalIncid$get_last_param_bootstrap_diagnostics()InferenceAbstractKKMarginalIncid$get_last_param_bootstrap_estimate_diagnostics()InferenceAbstractKKMarginalIncid$get_mod()InferenceAbstractKKMarginalIncid$get_summary()InferenceAbstractKKMarginalIncid$get_supported_bayesian_bootstrap_ci_types()InferenceAbstractKKMarginalIncid$get_supported_bayesian_bootstrap_pval_types()InferenceAbstractKKMarginalIncid$get_supported_bootstrap_ci_types()InferenceAbstractKKMarginalIncid$get_supported_bootstrap_pval_types()InferenceAbstractKKMarginalIncid$get_supported_information_preferences()InferenceAbstractKKMarginalIncid$get_supported_rand_bootstrap_ci_types()InferenceAbstractKKMarginalIncid$get_supported_rand_bootstrap_pval_types()InferenceAbstractKKMarginalIncid$get_supported_testing_types()InferenceAbstractKKMarginalIncid$get_testing_type()InferenceAbstractKKMarginalIncid$initialize()InferenceAbstractKKMarginalIncid$select_optimal_b_subsampling()InferenceAbstractKKMarginalIncid$select_optimal_m_out_of_n_bootstrap()InferenceAbstractKKMarginalIncid$set_custom_randomization_statistic_cpp()InferenceAbstractKKMarginalIncid$set_custom_randomization_statistic_function()InferenceAbstractKKMarginalIncid$set_information_preference()InferenceAbstractKKMarginalIncid$set_testing_type()InferenceAbstractKKMarginalIncid$supports_rand_pval_for_incidence()+ inherited public methods from Inference
Inference$capabilities()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$is_nonestimable()Inference$set_optimization_alg()Inference$set_seed()Inference$supports()
Examples
# \donttest{
seq_des = DesignSeqOneByOneKK14$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), x2 = rnorm(1)))
}
seq_des$add_all_subject_responses(rbinom(10, 1, 0.5))
inf = InferenceIncidKKModifiedPoisson$new(seq_des)
inf$compute_estimate()
#> [1] 0.4658296
# }