msmglm: Marginal structural generalized linear models with robust...

View source: R/msmglm.R

msmglmR Documentation

Marginal structural generalized linear models with robust inference based on nonparametric projections. Nonparametric robust inference for marginal structural models for the CATE, CATT, TSM, and RR.

Description

Marginal structural generalized linear models with robust inference based on nonparametric projections. Nonparametric robust inference for marginal structural models for the CATE, CATT, TSM, and RR.

Usage

msmglm(
  formula,
  data,
  V,
  W = V,
  A,
  Y,
  estimand = c("CATE", "CATT", "TSM", "RR"),
  learning_method = c("HAL", "SuperLearner", "glm", "glmnet", "gam", "mars", "ranger",
    "xgboost"),
  treatment_level = max(data[[A]]),
  control_level = min(data[[A]]),
  cross_fit = FALSE,
  sl3_Learner_A = NULL,
  sl3_Learner_Y = NULL,
  formula_Y = as.formula(paste0("~ .^2")),
  formula_HAL_Y = NULL,
  HAL_args_Y = list(smoothness_orders = 1, max_degree = 2, num_knots = c(15, 10, 1)),
  HAL_fit_control = list(parallel = F),
  delta_epsilon = 0.025,
  verbose = TRUE,
  ...
)

Arguments

formula

A R formula object specifying the parametric form of CATE, OR, or RR (depending on method).

data

A data.frame or matrix containing the numeric values corresponding with the nodes W, A and Y.

V

The marginal covariate (or covariate vector) of interest for the marginal structural model.

W

A character vector of covariates/confounders to adjust for contained in data. V is automatically added to W.

A

A character name for the treatment assignment variable contained in data

Y

A character name for the outcome variable contained in data (outcome can be continuous, nonnegative or binary depending on method)

estimand

Estimand/parameter to estimate. Choices are: 'CATE': Provides nonparametrically-robust inference for the user-specified marginal structural model of 'E[CATE(W)|V] := E[E[Y|A=1,W] - E[Y|A=0,W]|V]'. 'CATT': Provides nonparametrically-robust inference for the user-specified marginal structural model of 'E[CATE(W)|V, A=1] := E[E[Y|A=1,W] - E[Y|A=0,W]|V, A=1]'. 'TSM': Provides nonparametrically-robust inference for the user-specified marginal structural model of 'E[E[Y|A=a,W]|V]'. 'RR': Provides nonparametrically-robust inference for the user-specified marginal structural relative risk model of 'E[E[Y|A=1,W]|V] / E[E[Y|A=0,W]|V]'.

learning_method

Machine-learning method to use. This is overrided if argument sl3_Learner is provided. Options are: "SuperLearner": A stacked ensemble of all of the below that utilizes cross-validation to adaptively choose the best learner. "HAL": Adaptive robust automatic machine-learning using the Highly Adaptive Lasso hal9001. See argument HAL_args_Y. "glm": Fit nuisances with parametric model. "glmnet": Learn using lasso with glmnet. "gam": Learn using generalized additive models with mgcv. "mars": Multivariate adaptive regression splines with earth. "ranger": Robust random-forests with the package Ranger "xgboost": Learn using a default cross-validation tuned xgboost library with max_depths 3 to 7. We recommend performing simulations checking 95 Note speed can vary significantly depending on learner choice!

treatment_level

A value/level of A that represents the treatment arm value. By default, the maximum level. The estimands are defined relative to treatment_level and control_level. This is mainly useful when A is categorical.

control_level

A value/level of A that represents the control arm value. By default, the maximum level. The estimands are defined relative to treatment_level and control_level. This is mainly useful when A is categorical.

cross_fit

Whether to cross-fit the initial estimator. This is always set to FALSE if argument sl3_Learner_A and/or sl3_Learner_Y is provided. learning_method = 'SuperLearner' is always cross-fitted (default). learning_method = 'xgboost' and 'ranger' are always cross-fitted regardless of the value of cross_fit All other learning_methods are only cross-fitted if 'cross_fit=TRUE'. Note, it is not necessary to cross-fit glm, glmnet, gam or mars as long as the dimension of W is not too high. In smaller samples and lower dimensions, it may in fact hurt to cross-fit.

sl3_Learner_A

A sl3 Learner object to use to estimate nuisance function P(A=1|W) with machine-learning. Note, cross_fit is automatically set to FALSE if this argument is provided. If you wish to cross-fit the learner sl3_Learner_A then do: sl3_Learner_A <- Lrnr_cv$new(sl3_Learner_A). Cross-fitting is recommended for all tree-based algorithms like random-forests and gradient-boosting.

sl3_Learner_Y

A sl3 Learner object to use to nonparametrically [Y|A,W] with machine-learning. Note, cross_fit is automatically set to FALSE if this argument is provided. Cross-fitting is recommended for all tree-based algorithms like random-forests and gradient-boosting.

formula_Y

Only used if 'learning_method By default, 'formula_Y = . + A*.' so that additive learners still model treatment interactions.

formula_HAL_Y

A HAL formula string to be passed to fit_hal). See the 'formula' argument of fit_hal) for syntax and example use.

HAL_args_Y

A list of parameters for the semiparametric Highly Adaptive Lasso estimator for E[Y|A,W]. Should contain the parameters: 1. 'smoothness_orders': Smoothness order for HAL estimator of E[Y|A,W] (see fit_hal) smoothness_order_Y0W = 1 is piece-wise linear. smoothness_order_Y0W = 0 is piece-wise constant. 2. 'max_degree': Max interaction degree for HAL estimator of E[Y|A,W] (see fit_hal) 3. 'num_knots': A vector of the number of knots by interaction degree for HAL estimator of E[Y|A=0,W] (see fit_hal). Used to generate spline basis functions.

HAL_fit_control

See the argument 'fit_control' of (see fit_hal).

delta_epsilon

Step size of iterative targeted maximum likelihood estimator. 'delta_epsilon = 1 ' leads to large step sizes and fast convergence. 'delta_epsilon = 0.01' leads to slower convergence but possibly better performance. Useful to set to a large value in high dimensions.

verbose

Passed to tmle3 routines. Prints additional information if TRUE.

...

Not used


Larsvanderlaan/causalGLM documentation built on April 14, 2022, 12:51 a.m.