# doubly robust estimator
# needs to correctly specify either the outcome model or the exposure model
# for confounding
# NOTE: only works with binary exposures
data <- AF::clslowbwt
x <- standardize_glm_dr(
formula_outcome = bwt ~ smoker * (race + age + lwt) + I(age^2) + I(lwt^2),
formula_exposure = smoker ~ race * age * lwt + I(age^2) + I(lwt^2),
family_outcome = "gaussian",
family_exposure = "binomial",
data = data,
values = list(smoker = c(0, 1)), contrasts = "difference", reference = 0
)
set.seed(6)
n <- 100
Z <- rnorm(n)
X <- rbinom(n, 1, prob = (1 + exp(Z))^(-1))
Y <- rbinom(n, 1, prob = (1 + exp(as.numeric(X) + Z))^(-1))
dd <- data.frame(Z, X, Y)
x <- standardize_glm_dr(
formula_outcome = Y ~ X * Z, formula_exposure = X ~ Z,
family_outcome = "binomial",
data = dd,
values = list(X = 0:1), reference = 0,
contrasts = c("difference"), transforms = c("odds")
)
Run the code above in your browser using DataLab