Creates a method object for difference-in-differences outcome regression (DID-EC-OR) estimation with external control borrowing for the open-label extension phase (Zhou et al., 2024, Eq. 3). Uses outcome models only (no propensity score model).
Usage
did_ec_or(
outcome_formula_ext,
outcome_formula_rct_ctrl,
outcome_formula_rct_trt,
bootstrap = 500L,
bootstrap_ci_type = NULL
)Arguments
- outcome_formula_ext
Character vector of outcome model formulas for external controls, one per outcome.
- outcome_formula_rct_ctrl
Character vector of outcome model formulas for RCT control subjects, one per outcome.
- outcome_formula_rct_trt
Character vector of outcome model formulas for RCT treated subjects, one per outcome. In all three arguments, each formula is matched to an outcome by its left-hand side, so the order does not matter. The left-hand side must be the outcome name itself; to model a transformed outcome, transform the column first. The right-hand side should use only columns in
covariates_col_name..or any other column is an error; an outcome gives a warning, because adjusting for an outcome measured after randomization can bias the treatment effect.- bootstrap
Number of bootstrap replicates (at least 2). Defaults to 500. Use about 1000 or more for reported intervals; small values are for quick checks only, and their interval can exclude the point estimate.
- bootstrap_ci_type
Bootstrap CI type: one of
"perc"(default),"bca","norm", or"basic"."bca"is slow whenbootstrapis smaller than the number of patients:boot::boot.ci()then refits the estimator once for each patient.
References
Zhou et al. (2024). Estimating treatment effect in randomized trial after control to treatment crossover using external controls. Journal of Biopharmaceutical Statistics. doi:10.1080/10543406.2024.2330209
Examples
model_forms <- c(
"y1 ~ x1 + x2 + x3 + x4 + x5",
"y2 ~ x1 + x2 + x3 + x4 + x5",
"y3 ~ x1 + x2 + x3 + x4 + x5",
"y4 ~ x1 + x2 + x3 + x4 + x5"
)
did_ec_or(
outcome_formula_ext = model_forms,
outcome_formula_rct_ctrl = model_forms,
outcome_formula_rct_trt = model_forms,
bootstrap = 500
)
#> An object of class "did_ec_or_method"
#> Slot "outcome_formula_ext":
#> [1] "y1 ~ x1 + x2 + x3 + x4 + x5" "y2 ~ x1 + x2 + x3 + x4 + x5"
#> [3] "y3 ~ x1 + x2 + x3 + x4 + x5" "y4 ~ x1 + x2 + x3 + x4 + x5"
#>
#> Slot "outcome_formula_rct_ctrl":
#> [1] "y1 ~ x1 + x2 + x3 + x4 + x5" "y2 ~ x1 + x2 + x3 + x4 + x5"
#> [3] "y3 ~ x1 + x2 + x3 + x4 + x5" "y4 ~ x1 + x2 + x3 + x4 + x5"
#>
#> Slot "outcome_formula_rct_trt":
#> [1] "y1 ~ x1 + x2 + x3 + x4 + x5" "y2 ~ x1 + x2 + x3 + x4 + x5"
#> [3] "y3 ~ x1 + x2 + x3 + x4 + x5" "y4 ~ x1 + x2 + x3 + x4 + x5"
#>
#> Slot "method_name":
#> [1] "DID-EC-OR"
#>
#> Slot "bootstrap":
#> [1] 500
#>
#> Slot "bootstrap_ci_type":
#> [1] "perc"
#>
