Title: | Robust Inference in Complex Innovative Trial Design |
Version: | 1.0.0 |
Description: | Perform robust estimation and inference in platform trials and other master protocol trials. Yuhan Qian, Yifan Yi, Jun Shao, Yanyao Yi, Gregory Levin, Nicole Mayer-Hamblett, Patrick J. Heagerty, Ting Ye (2025) <doi:10.48550/arXiv.2411.12944>. |
License: | MIT + file LICENSE |
Encoding: | UTF-8 |
RoxygenNote: | 7.3.2 |
URL: | https://github.com/Eureeca/RobinCID |
BugReports: | https://github.com/Eureeca/RobinCID/issues |
Suggests: | testthat (≥ 3.0.0) |
Config/testthat/edition: | 3 |
Imports: | checkmate, numDeriv, stats, MASS |
Depends: | R (≥ 3.5) |
LazyData: | true |
NeedsCompilation: | no |
Packaged: | 2025-05-27 06:40:54 UTC; eureka |
Author: | Yuhan Qian [aut, cre, cph], Ting Ye [aut], Yanyao Yi [aut], Marlena Bannick [aut] |
Maintainer: | Yuhan Qian <yhqian@uw.edu> |
Repository: | CRAN |
Date/Publication: | 2025-05-29 08:50:13 UTC |
RobinCID
Package
Description
RobinCID
implements unbiased prediction and robust inference in R.
Author(s)
Maintainer: Yuhan Qian yhqian@uw.edu [copyright holder]
Authors:
Ting Ye
Yanyao Yi
Marlena Bannick
See Also
Useful links:
Assign Probability according to Design
Description
Assign Probability according to Design
Usage
assign_prob_and_strata(
data,
estimand,
design = list(randomization_var_colnames = NULL, randomization_table = NULL),
method,
estimated_propensity = TRUE,
stratify_by = NULL
)
Arguments
data |
( |
estimand |
( |
design |
( |
method |
estimation method. |
estimated_propensity |
Whether to use estimated propensity score. |
stratify_by |
The column name of stratification variable in |
Details
design
has two elements: randomization_var_colnames
(vector
) and randomization_table
(data.frame
)
Value
A new data
with columns of the treatment assignment probability.
Compute Estimates and Covariance Matrix
Description
Compute Estimates and Covariance Matrix
Usage
estimate_effect(
ret,
y,
treatment,
treatments_for_compare,
data,
prob_mat,
post_strata,
stabilize
)
Arguments
ret |
counterfactual prediction |
y |
Observed outcome |
treatment |
name of treatment |
treatments_for_compare |
description |
data |
( |
prob_mat |
( |
post_strata |
( |
stabilize |
( |
Value
A list of "estimate_effect" object with following elements:
-
estimate
: estimate of the treatment effect. -
inner_variance
: estimate of the covariance matrix. -
method
: estimation method.
Trial Data
Description
This dataset is generated based on the first three enrollment windows outlined in Figure 1(a) in our paper.
Usage
example
Format
A data frame with 500 rows and 17 columns:
- xc, xb, subtype
The covariates.
- t, substudy
The enrollment window and substudy assignment
- treatment
The treatment assignment, "1", "2", "3" and "4"
- y
The continuous response.
- y_b
The binary response, I(y>3).
- s12, s12.2, s12.error, s13, s14
The stratification variables.
- trt.1, trt.2, trt.3, trt.4
The assgiment probabilities of trt 1, 2, 3, and 4.
Source
The data is generated by Yuhan.
Find Data in a Fit
Description
Find Data in a Fit
Usage
find_data(fit, ...)
Arguments
fit |
A fit object. |
... |
Additional arguments. |
Value
A data frame used in the fit.
Contrast Functions and Jacobians
Description
Contrast Functions and Jacobians
Usage
h_diff(x)
h_jac_diff(x)
h_ratio(x)
h_jac_ratio(x)
h_odds_ratio(x)
h_jac_odds_ratio(x)
Arguments
x |
( |
Value
Vector of contrasts, or matrix of jacobians.
Examples
h_diff(1:3)
h_jac_ratio(1:3)
Lower Triangular Index
Description
Lower Triangular Index
Usage
h_lower_tri_idx(n)
Arguments
n |
( |
Value
Matrix of lower triangular indices.
Counterfactual Prediction
Description
Obtain counterfactual prediction of a fit.
Usage
predict_counterfactual(
fit.j,
fit.k,
treatment,
treatments_for_compare,
prob_mat,
post_strata,
data,
stabilize,
settings
)
Arguments
fit.j |
fitted object for trt j. |
fit.k |
fitted object for trt k. |
treatment |
name of treatment column |
treatments_for_compare |
( |
prob_mat |
( |
post_strata |
( |
data |
( |
stabilize |
stabilize |
settings |
estimation setting |
Value
A list of prediction_cf
object with following elements:
-
estimation
: = estimation, -
sample_size
: sample size of ECE population. -
fit.j
: fitted model for the treatment specified in tx_to_compare. -
fit.k
: fitted model for the treatment specified in tx_to_compare.
S3 Methods for prediction_cf
Description
S3 Methods for prediction_cf
Usage
## S3 method for class 'prediction_cf'
print(x, ...)
Arguments
x |
( |
Value
No return value, called for side effects
Functions
-
print(prediction_cf)
: prints the prediction_cf object.
Post-Stratification Based Inference
Description
Provides robust inference via post stratification.
Usage
robin_ps(
data,
estimand = list(tx_colname = NULL, tx_to_compare = NULL),
design = list(randomization_var_colnames = NULL, randomization_table = NULL),
stratify_by = NULL,
outcome_model = list(formula = NULL, family = gaussian()),
contrast_specs = list(contrast = "difference", contrast_jac = NULL),
alpha = 0.05,
...
)
Arguments
data |
( |
estimand |
(
|
design |
(
|
stratify_by |
( |
outcome_model |
(
|
contrast_specs |
(
|
alpha |
( |
... |
Additional arguments passed to |
Details
If family is MASS::negative.binomial(NA)
, the function will use MASS::glm.nb
instead of glm
.
Value
A treatment_effect object.
Examples
data_sim <- RobinCID::example
tx_colname <- "treatment"
treatment_levels <- unique(data_sim[[tx_colname]])
tx_to_compare <- c("trt.1", "trt.3")
randomization_var_colnames <- c("t", "subtype")
df <- data_sim[c("xb", "xc", tx_colname, randomization_var_colnames, "y")]
randomization_table <- unique(data_sim[c(randomization_var_colnames, treatment_levels)])
robin_ps(
data = df,
estimand = list(tx_colname = tx_colname,
tx_to_compare = tx_to_compare),
design = list(randomization_var_colnames = randomization_var_colnames,
randomization_table = randomization_table),
stratify_by = NULL,
outcome_model = list(formula = y ~ 1,
family = gaussian())
)
Inverse Probability Weighting Based Inference
Description
Provides robust inference via inverse probability weighting.
Usage
robin_wt(
data,
estimand = list(tx_colname = NULL, tx_to_compare = NULL),
design = list(randomization_var_colnames = NULL, randomization_table = NULL),
estimated_propensity = TRUE,
outcome_model = list(formula = NULL, family = gaussian()),
contrast_specs = list(contrast = "difference", contrast_jac = NULL),
alpha = 0.05,
...
)
Arguments
data |
( |
estimand |
(
|
design |
(
|
estimated_propensity |
( |
outcome_model |
(
|
contrast_specs |
(
|
alpha |
( |
... |
Additional arguments passed to |
Details
If randomization_table
is provided, it must include columns corresponding to randomization_var_colnames
,
as well as treatment assignment probability columns named after the treatment levels in tx_colname
from data
.
If family
is MASS::negative.binomial(NA)
, the function will use MASS::glm.nb
instead of glm
.
Value
A treatment_effect object.
Examples
data_sim <- RobinCID::example
tx_colname <- "treatment"
treatment_levels <- unique(data_sim[[tx_colname]])
tx_to_compare <- c("trt.1", "trt.3")
randomization_var_colnames <- c("t", "subtype")
df <- data_sim[c("xb", "xc", tx_colname, randomization_var_colnames, "y")]
randomization_table <- unique(data_sim[c(randomization_var_colnames, treatment_levels)])
robin_wt(
data = df,
estimand = list(tx_colname = tx_colname,
tx_to_compare = tx_to_compare),
design = list(randomization_var_colnames = randomization_var_colnames,
randomization_table = randomization_table),
estimated_propensity = FALSE,
outcome_model = list(formula = y ~ 1,
family = gaussian())
)
Treatment Effect
Description
Obtain treatment effect and variance from counter-factual prediction
Usage
treatment_effect(object, pair, eff_measure, eff_jacobian, alpha, ...)
difference(object, ...)
risk_ratio(object, ...)
odds_ratio(object, ...)
Arguments
object |
Object from which to obtain treatment effect. Must be obtained from |
pair |
( |
eff_measure |
( |
eff_jacobian |
( |
alpha |
Nominal level |
... |
Additional arguments passed to |
Value
A list of treatment_effect
object with following elements:
-
mm_name
: name of the treatments to compare. -
marginal_mean
: estimate of the treatment effect. -
mmvariance
: estimate of the covariance matrix. -
trt_effect
: estimate of the contrast. -
variance
: estimate of the variance of contrast. -
contrast
: name of the contrast function. -
settings
: estimation settings.