Average treatment effects standardized to treated covariates
att.Rdatt() computes the average treatment effect on the treated.
Usage
att(
fit,
newdata = NULL,
y = NULL,
type = c("mean", "rmean"),
cutoff = NULL,
interval = "credible",
level = 0.95,
nsim_mean = 200L,
show_progress = TRUE
)Arguments
- fit
A
"causalmixgpd_causal_fit"object fromrun_mcmc_causal().- newdata
Ignored for marginal estimands. If supplied, a warning is issued and training data are used.
- y
Ignored for marginal estimands. If supplied, a warning is issued and training data are used.
- type
Character; type of mean treatment effect:
"mean"(default): ordinary mean ATE"rmean": restricted-mean ATE (requirescutoff)
- cutoff
Finite numeric cutoff for restricted mean; required for
type = "rmean", ignored otherwise.- interval
Character or NULL; type of credible interval:
NULL: no interval"credible"(default): equal-tailed quantile intervals"hpd": highest posterior density intervals
- level
Numeric credible level for intervals (default 0.95 for 95 percent CI).
- nsim_mean
Number of posterior predictive draws used by simulation-based mean targets. Ignored for analytical ordinary means.
- show_progress
Logical; if TRUE, print step messages and render progress where supported.
Value
An object of class "causalmixgpd_ate" containing the ATT
summary, optional intervals, and the arm-specific predictive objects used
in the aggregation. The returned object includes a top-level
$fit_df data frame for direct extraction.
Details
The estimand is $$\mathrm{ATT} = E\{Y(1) - Y(0) \mid A = 1\},$$ approximated by marginalizing over the empirical covariate distribution of treated units.
Examples
# \donttest{
N <- 25
X <- data.frame(x1 = stats::rnorm(N))
A <- stats::rbinom(N, 1, 0.5)
y <- abs(stats::rnorm(N)) + 0.1
mcmc_small <- list(niter = 100, nburnin = 50, thin = 1, nchains = 1, seed = 1)
cb <- build_causal_bundle(y = y, X = X, A = A, backend = "sb", kernel = "normal",
components = 3, mcmc_outcome = mcmc_small, mcmc_ps = mcmc_small)
fit <- run_mcmc_causal(cb, show_progress = FALSE)
#> Defining model
#> Building model
#> Setting data and initial values
#> Checking model sizes and dimensions
#> [Note] This model is not fully initialized. This is not an error.
#> To see which variables are not initialized, use model$initializeInfo().
#> For more information on model initialization, see help(modelInitialization).
#> ===== Monitors =====
#> thin = 1: beta
#> ===== Samplers =====
#> RW sampler (2)
#> - beta[] (2 elements)
#> Compiling
#> [Note] This may take a minute.
#> [Note] Use 'showCompilerOutput = TRUE' to see C++ compilation details.
#> Compiling
#> [Note] This may take a minute.
#> [Note] Use 'showCompilerOutput = TRUE' to see C++ compilation details.
#> running chain 1...
#> Defining model
#> Building model
#> Setting data and initial values
#> Checking model sizes and dimensions
#> [Note] This model is not fully initialized. This is not an error.
#> To see which variables are not initialized, use model$initializeInfo().
#> For more information on model initialization, see help(modelInitialization).
#> ===== Monitors =====
#> thin = 1: alpha, beta_mean, beta_ps_mean, sd, w
#> ===== Samplers =====
#> conjugate sampler (3)
#> - sd[] (3 elements)
#> categorical sampler (11)
#> - z[] (11 elements)
#> RW sampler (9)
#> - alpha
#> - beta_mean[] (3 elements)
#> - beta_ps_mean[] (3 elements)
#> - v[] (2 elements)
#> [Note] Assigning an RW_block sampler to nodes with very different scales can result in low MCMC efficiency. If all nodes assigned to RW_block are not on a similar scale, we recommend providing an informed value for the "propCov" control list argument, or using the "barker" sampler instead.
#> Compiling
#> [Note] This may take a minute.
#> [Note] Use 'showCompilerOutput = TRUE' to see C++ compilation details.
#> Compiling
#> [Note] This may take a minute.
#> [Note] Use 'showCompilerOutput = TRUE' to see C++ compilation details.
#> [Warning] To calculate WAIC, set 'WAIC = TRUE', in addition to having enabled WAIC in building the MCMC.
#> running chain 1...
#> Defining model
#> Building model
#> Setting data and initial values
#> Checking model sizes and dimensions
#> [Note] This model is not fully initialized. This is not an error.
#> To see which variables are not initialized, use model$initializeInfo().
#> For more information on model initialization, see help(modelInitialization).
#> ===== Monitors =====
#> thin = 1: alpha, beta_mean, beta_ps_mean, sd, w
#> ===== Samplers =====
#> conjugate sampler (3)
#> - sd[] (3 elements)
#> categorical sampler (14)
#> - z[] (14 elements)
#> RW sampler (9)
#> - alpha
#> - beta_mean[] (3 elements)
#> - beta_ps_mean[] (3 elements)
#> - v[] (2 elements)
#> [Note] Assigning an RW_block sampler to nodes with very different scales can result in low MCMC efficiency. If all nodes assigned to RW_block are not on a similar scale, we recommend providing an informed value for the "propCov" control list argument, or using the "barker" sampler instead.
#> Compiling
#> [Note] This may take a minute.
#> [Note] Use 'showCompilerOutput = TRUE' to see C++ compilation details.
#> Compiling
#> [Note] This may take a minute.
#> [Note] Use 'showCompilerOutput = TRUE' to see C++ compilation details.
#> [Warning] To calculate WAIC, set 'WAIC = TRUE', in addition to having enabled WAIC in building the MCMC.
#> running chain 1...
att(fit, interval = "credible", nsim_mean = 100)
#> [att] Preparing ATT inputs
#> [att] Preparing propensity-score adjustment
#> [att] Predicting treated-arm effects
#> [att] Predicting control-arm effects
#> [att] Aggregating ATT estimates
#> ATT (Average Treatment Effect on the Treated)
#> Prediction points: 1
#> Conditional (covariates): NO
#> Propensity score used: YES
#> PS scale: logit
#> Credible interval: credible (95%)
#>
#> ATT estimates (treated - control):
#> mean lower upper
#> -0.004 -0.017 0.006
# }