Estimate treatment-group-specific response means and (optionally) treatment group contrasts using a generalized linear working model.

robincar_glm(
  df,
  treat_col,
  response_col,
  formula = NULL,
  car_strata_cols = NULL,
  car_scheme = "simple",
  g_family = stats::gaussian,
  g_accuracy = 7,
  contrast_h = NULL,
  contrast_dh = NULL
)

Arguments

df

A data.frame with the required columns

treat_col

Name of column in df with treatment variable

response_col

Name of the column in df with response variable

formula

The formula to use for adjustment specified using as.formula("..."). This overrides car_strata_cols and covariate_cols.

car_strata_cols

Names of columns in df with car_strata variables

car_scheme

Name of the type of covariate-adaptive randomization scheme. One of: "simple", "pocock-simon", "biased-coin", "permuted-block".

g_family

Family that would be supplied to glm(...), e.g., binomial. If no link specified, will use default link, like behavior in glm. If you wish to use a negative binomial working model with an unknown dispersion parameter, then use `g_family="nb"`.

g_accuracy

Level of accuracy to check prediction un-biasedness.

contrast_h

An optional function to specify a desired contrast

contrast_dh

An optional jacobian function for the contrast (otherwise use numerical derivative)

Value

If `contrast_h` argument is used, outputs a `main` and a `contrast` object. The `main` object has the following structure:

result

A dplyr::tibble() with the treatment label, treatment mean estimate using AIPW, estimated SE, and p-value based on a z-test with estimate and SE.

varcov

The variance-covariance matrix for the treatment mean estimates.

settings

List of model settings used in covariate adjustment.

original_df

The original dataset provided by the user.

mod

The fit from the glm() working model used for covariate adjustment.

mu_a

Predicted potential outcomes for each treatment category (columns) and individual (rows). These are the \(\hat{\mu}_a\)

.

g.estimate

The G-computation estimate based only on \(\frac{1}{n} \sum_{i=1}^{n} \hat{\mu}_a(X_i)\). This is equivalent to the AIPW estimate when a canonical link function is used.

data

Attributes about the dataset.

The `contrast` object has a structure that is documented in RobinCar::robincar_contrast().

Details

The output is the AIPW estimator given by (for each treatment group \(a\)):

$$\frac{1}{n} \sum_{i=1}^{n} \hat{\mu}_a(X_i) + \frac{1}{n_a} \sum_{i:A_i=a} \{Y_i - \hat{\mu}(X_i)\}$$

where \(Y_i\) is the outcome, \(A_i\) is the treatment assignment, \(X_i\) are the covariates, \(n_a = \sum_{i=1}^{n} A_i=a\), and \(\hat{\mu}_a\) is the estimated conditional mean function based on the GLM working model. This working model has treatment \(a\)-specific coefficients if `adj_method` is "heterogeneous". Otherwise, they are shared across the treatment arms. Alternatively, if `formula` is used, the working model can be specified according to the user.

Importantly, the estimated variance accounts for misspecification of the working model, and for covariate-adaptive randomization.