R/cdf_estimation.R
drord.Rd
The available parameters for evaluating treatment efficacy are:
Difference in (weighted) means: The outcome levels are treated numerically, with each level possibly assigned a weight. The difference in average outcomes is computed.
Log odds ratio: The comparison describes the average log-odds (treatment level 1 versus 0) of the cumulative probability for each level of the outcome.
Mann-Whitney: The probability that a randomly-selected individual receiving treatment 1 will have a larger outcome value than a randomly selected individual receiving treatment 0 (with ties assigned weight 1/2).
drord( out, treat, covar, out_levels = sort(unique(out)), out_form = paste0(colnames(covar), collapse = "+"), out_weights = rep(1, length(out_levels)), out_model = "pooled-logistic", treat_form = "1", param = c("weighted_mean", "log_odds", "mann_whitney"), ci = "wald", alpha = 0.05, nboot = 1000, return_models = TRUE, est_dist = TRUE, stratify = FALSE, ... )
out | A |
---|---|
treat | A |
covar | A |
out_levels | A |
out_form | The right-hand side of a regression formula for the working proportional odds model. NOTE: THIS FORMULA MUST NOT SUPPRESS THE INTERCEPT. |
out_weights | A vector of |
out_model | Which R function should be used to fit the proportional odds
model. The recommended option is |
treat_form | The right-hand side of a regression formula for the working model of treatment probability as a function of covariates |
param | A vector of |
ci | A vector of |
alpha | Confidence intervals have nominal level 1- |
nboot | Number of bootstrap replicates used to compute bootstrap confidence intervals. |
return_models | If |
est_dist | A |
stratify | If |
... | Other options (not currently used). |
An object of class drord
. In addition to information related to
how drord
was called, the output contains the following:
inference pertaining to the log-odds parameter. NULL
if
this parameter not requested in call to drord
.
inference pertaining to the Mann-Whitney parameter. NULL
if
this parameter not requested in call to drord
.
inference pertaining to weighted mean parameter. NULL
if
this parameter not requested in call to drord
.
inference pertaining to the treatment-specific CDFs. See the plot
method for a convenient way of visualizing this information. NULL
if est_dist = FALSE
in call to drord
.
inference pertaining to the treatment-specific PMFs. See the plot
method for a convenient way of visualizing this information. NULL
if est_dist = FALSE
in call to drord
.
the fitted model for the probability of treatment as a function
of covariates. NULL
if return_models = FALSE
the proportional odds model fit in each treatment arm. named entries
in list indicate the corresponding treatment arm.
NULL
if return_models = FALSE
or stratify = TRUE
.
In each case, estimates are constructed by obtaining a doubly robust estimate of the cumulative distribution function (CDF) for each treatment group. This is achieved by fitting a (working) proportional odds model that includes inverse probability of treatment weights. The inclusion of these weights ensures that, so long as the working model includes intercept terms, the resultant estimate of the CDF is an augmented inverse probability of treatment weighted estimate. This implies that the estimate is nonparametric efficient if the working model contains the truth; however, even if the working model does not contain the truth, the CDF estimates are consistent and asymptotically normal with variance expected to dominate that of an unadjusted estimate of the same treatment effect.
The CDF estimates are subsequently mapped into estimates of each requested
parameter for evaluating treatment effects. The double robustness and efficiency
properties of the CDF estimates extend to these quantities as well. Confidence
intervals and hypothesis tests can be carried out in closed form using Wald-style
intervals and tests or using a nonparametric corrected and accelerated bootstrap
(BCa). Inference for the CDF and probability mass function is also returned and
can be used for subsequent visualizations (see plot.drord
).
data(covid19) # get estimates of all parameters based on main-effects # proportional odds model and intercept-only propensity model fit <- drord(out = covid19$out, treat = covid19$treat, covar = covid19[, "age_grp", drop = FALSE]) # get estimates of all parameters based on proportional odds and # propensity model that treats age_grp as categorical fit2 <- drord(out = covid19$out, treat = covid19$treat, covar = covid19[, "age_grp", drop = FALSE], out_form = "factor(age_grp)", treat_form = "factor(age_grp)") # obtain estimator stratified by age group fit3 <- drord(out = covid19$out, treat = covid19$treat, covar = covid19[, "age_grp", drop = FALSE], stratify = TRUE) # demonstration with missing outcome data covid19$out[1:5] <- NA # propensity model should now adjust for covariates to address # the potential for informative missingness fit4 <- drord(out = covid19$out, treat = covid19$treat, covar = covid19[, "age_grp", drop = FALSE], treat_form = "age_grp")