fit.adj2.adj2c.Super: Covariate-Adjusted Treatment Effect Estimation under the...

View source: R/fun_estimate_mean_treat.R

fit.adj2.adj2c.SuperR Documentation

Covariate-Adjusted Treatment Effect Estimation under the Super-Population Framework

Description

Implements HOIF-inspired debiased estimators for average treatment effect (ATE) or treatment effect on the treatment/control arm with variance estimation using influence function-based and asymptotic-variance. Designed for randomized experiments with moderately high-dimensional covariates.

Usage

fit.adj2.adj2c.Super(
  Y,
  X,
  A,
  intercept = TRUE,
  pi1 = NULL,
  target = "ATE",
  lc = FALSE
)

Arguments

Y

Numeric vector of length n containing observed responses.

X

Numeric matrix (n x p) of covariates. Centering is required. May include intercept column.

A

Binary vector of length n indicating treatment assignment (1 = treatment, 0 = control).

intercept

Logical. If TRUE (default), X already contains intercept. Set FALSE if X does not contain intercept.

pi1

Default is NULL. The assignment probability for the randomization assignment.

target

A character string specifying the target estimand. Must be one of: - '"ATE"' (default): Average Treatment Effect (difference between treatment and control arms). - '"EY1"': Expected outcome under treatment (estimates the effect for the treated group). - '"EY0"': Expected outcome under control (estimates the effect for the control group).

lc

Default is FALSE. If TRUE, then performs linear calibration to achieve efficiency gain using \hat{\mu}_0(X_i) and \hat{\mu}_1(X_i).

Value

A list containing three named vectors, including point estimates and variance estimates:

tau_vec

Point estimates:

  • adj2: Point estimation of the HOIF-inspired debiased estimator (Zhao et al., 2024).

  • adj2c: Point estimation of the the HOIF-inspired debiased estimator (Zhao et al., 2024), which is also the debiased estimator given by Lu et al. (2023).

var_infl_vec

Influence function-based variance estimates:

  • adj2: Variance for adj2 via the sample variance of its influence function formula.

  • adj2c: Variance for adj2c via the sample variance of its influence function formula.

var_rb_vec

Variance estimates inspired by Bannick et al. (2025):

  • adj2: Variance for adj2 following the asymptotic variance given by Bannick et al. (2025).

  • adj2c: Variance for adj2c following the asymptotic variance given by Bannick et al. (2025).

References

Bannick, M. S., Shao, J., Liu, J., Du, Y., Yi, Y. and Ye, T. (2025) A General Form of Covariate Adjustment in Clinical Trials under Covariate-Adaptive Randomization. Biometrika, Vol. xx(x), 1-xx, \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1093/biomet/asaf029")}.
Lu, X., Yang, F. and Wang, Y. (2023) Debiased regression adjustment in completely randomized experiments with moderately high-dimensional covariates. arXiv preprint, arXiv:2309.02073, \Sexpr[results=rd]{tools:::Rd_expr_doi("10.48550/arXiv.2309.02073")}.
Zhao, S., Wang, X., Liu, L. and Zhang, X. (2024) Covariate Adjustment in Randomized Experiments Motivated by Higher-Order Influence Functions. arXiv preprint, arXiv:2411.08491, \Sexpr[results=rd]{tools:::Rd_expr_doi("10.48550/arXiv.2411.08491")}.

Examples


set.seed(120)
alpha0 <- 0.1;
n <- 400;

p0 <- ceiling(n * alpha0)
beta0_full <- 1 / (1:p0) ^ (1 / 2) * (-1) ^ c(1:p0)
beta <- beta0_full / norm(beta0_full,type='2')

Sigma_true <- matrix(0, nrow = p0, ncol = p0)
for (i in 1:p0) {
  for (j in 1:p0) {
    Sigma_true[i, j] <- 0.1 ** (abs(i - j))
  }
}

X <- mvtnorm::rmvt(n, sigma = Sigma_true, df = 3)

lp0 <- X %*% beta
delta_X <- 1  -  1/4 * X[, 2] -  1/8 * X[, 3]
lp1 <- lp0 + delta_X

Y0 <- lp0 + rnorm(n)
Y1 <- lp1 + rnorm(n)


pi1 <- 1 / 2
A <- rbinom(n, size = 1, prob = pi1)
Y <- A * Y1 + (1 - A) * Y0

Xc <- cbind(1, scale(X, scale = FALSE))
result.adj2.adj2c.sp.ate.ls <- fit.adj2.adj2c.Super(Y, Xc, A, intercept = TRUE,
                                                    target = 'ATE', lc = TRUE)
result.adj2.adj2c.sp.ate.ls
result.adj2.adj2c.sp.treat.ls <- fit.adj2.adj2c.Super(Y, Xc, A, intercept = TRUE,
                                                      target = 'EY1', lc = TRUE)
result.adj2.adj2c.sp.treat.ls
result.adj2.adj2c.sp.control.ls <- fit.adj2.adj2c.Super(Y, Xc, A, intercept = TRUE,
                                                        target = 'EY0', lc = TRUE)
result.adj2.adj2c.sp.control.ls

HOIFCar documentation built on June 25, 2025, 5:10 p.m.