
G-Computation Risk-Ratio Inference for KK Designs with Binary Responses
Source:R/inference_incidence_KK_marginal.R
InferenceIncidKKGCompRiskRatio.RdFits the same all-subject logistic working model as
InferenceIncidKKGCompRiskDiff
for a KK incidence outcome using treatment and, optionally, all recorded
covariates, then estimates the marginal (standardized, g-computation) risk
ratio \(\hat\theta = \left(n^{-1}\sum_i \hat p(1, X_i)\right) /
\left(n^{-1}\sum_i \hat p(0, X_i)\right)\) by averaging fitted-model predicted
risks under all-treated and all-control assignments over the empirical
covariate distribution (Robins 1986). Matched pairs are treated as clusters
and reservoir subjects are treated as singletons when computing the sandwich
covariance; the delta method is applied on the log-risk-ratio scale to keep
the reported ratio and its confidence interval positive, then
back-transformed for reporting.
Details
This estimator has likelihood_tier = "none". If the working model
fails to converge, has no treatment-arm variation, or the all-control
standardized risk is zero (undefined ratio), the estimate is marked
non-estimable via is_nonestimable().
References
Robins, J. (1986). A new approach to causal inference in mortality studies with a sustained exposure period. Mathematical Modelling, 7(9-12), 1393-1512. doi:10.1016/0270-0255(86)90088-6
Super class
Inference -> InferenceIncidKKGCompRiskRatio
Methods
Public 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()
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 = InferenceIncidKKGCompRiskRatio$new(seq_des)
inf$compute_estimate()
#> [1] 1.490008
# }