doubly_robust {CausalModels}R Documentation

Doubly Robust Model

Description

`doubly_robust` trains both an outcome model and a propensity model to generate predictions for the outcome and probability of treatment respectively. By default, the model uses standardization and propensity_scores to form a doubly-robust model between standardization and IP weighting. Alternatively, any outcome and treatment models can be provided instead, but must be compatible with the predict generic function in R. Since many propensity models may not predict probabilities without additional arguments into the predict function, the predictions themselves can be given for both the outcome and propensity scores.

Usage

doubly_robust(
  data,
  out.mod = NULL,
  p.mod = NULL,
  f = NA,
  family = gaussian(),
  simple = pkg.env$simple,
  scores = NA,
  p.f = NA,
  p.simple = pkg.env$simple,
  p.family = binomial(),
  p.scores = NA,
  n.boot = 50,
  ...
)

Arguments

data

a data frame containing the variables in the model. This should be the same data used in init_params.

out.mod

(optional) a regression model that predicts the outcome. NOTE: the model given must be compatible with the predict generic function.

p.mod

(optional) a propensity model that predicts the probability of treatment. NOTE: the model given must be compatible with the predict generic function.

f

(optional) an object of class "formula" that overrides the default parameter

family

the family to be used in the general linear model. By default, this is set to gaussian.

simple

a boolean indicator to build default formula with interactions. If true, interactions will be excluded. If false, interactions will be included. By default, simple is set to false.

scores

(optional) use calculated outcome estimates.

p.f

(optional) an object of class "formula" that overrides the default formula for the denominator of the IP weighting function.

p.simple

a boolean indicator to build default formula with interactions for the propensity models. If true, interactions will be excluded. If false, interactions will be included. By default, simple is set to false. NOTE: if this is changed, the coefficient for treatment may not accurately represent the average causal effect.

p.family

the family to be used in the underlying propensity model. By default, this is set to binomial.

p.scores

(optional) use calculated propensity scores.

n.boot

an integer value that indicates number of bootstrap iterations to calculate standard error.

...

additional arguments that may be passed to the underlying glm model.

Value

doubly_robust returns an object of class "doubly_robust".

The functions print, summary, and predict can be used to interact with the underlying glm model.

An object of class "doubly_robust" is a list containing the following:

out.call

the matched call of the outcome model.

p.call

the matched call of the propensity model.

out.model

the underlying outcome model.

p.model

the underlying propensity model.

y_hat

the estimated outcome values.

p.scores

the estimated propensity scores.

ATE

the estimated average treatment effect (risk difference).

ATE.summary

a data frame containing the ATE, SE, and 95% CI of the ATE.

data

the data frame used to train the model.

Examples

library(causaldata)
data(nhefs)
nhefs.nmv <- nhefs[which(!is.na(nhefs$wt82)), ]
nhefs.nmv$qsmk <- as.factor(nhefs.nmv$qsmk)

confounders <- c(
  "sex", "race", "age", "education", "smokeintensity",
  "smokeyrs", "exercise", "active", "wt71"
)

init_params(wt82_71, qsmk,
  covariates = confounders,
  data = nhefs.nmv
)

# model using all defaults
model <- doubly_robust(data = nhefs.nmv)
summary(model)

# use alternative outcome model
out.mod <- propensity_matching(data = nhefs.nmv)
db.model <- doubly_robust(
  out.mod = out.mod,
  data = nhefs.nmv
)
db.model

# give calculated outcome predictions and give formula for propensity scores
db.model <- doubly_robust(
  scores = predict(out.mod),
  p.f = qsmk ~ sex + race + age,
  data = nhefs.nmv
)
db.model


[Package CausalModels version 0.2.0 Index]