npglm: npglm Nonparametric robust generalized linear models for...

View source: R/npglm.R

npglmR Documentation

npglm Nonparametric robust generalized linear models for interpretable causal inference. Supports flexible working-model-based estimation of the conditional average treatment effect (CATE and CATT), treatment-specific mean (TSM), conditional odds ratio (OR), and conditional relative risk (RR), ... where a user-specified working parametric model for the estimand is viewed as an approximation of the true estimand and nonparametrically correct inference is given for these approximations. The estimates and inference obtained by 'npglm' are robust and nonparametrically correct, which comes at a small cost in confidence interval width relative to 'spglm'. Highly Adaptive Lasso (HAL) (see fit_hal), a flexible and adaptive spline regression estimator, is recommended for medium-small to large sample sizes.

Description

npglm Nonparametric robust generalized linear models for interpretable causal inference. Supports flexible working-model-based estimation of the conditional average treatment effect (CATE and CATT), treatment-specific mean (TSM), conditional odds ratio (OR), and conditional relative risk (RR), ... where a user-specified working parametric model for the estimand is viewed as an approximation of the true estimand and nonparametrically correct inference is given for these approximations. The estimates and inference obtained by 'npglm' are robust and nonparametrically correct, which comes at a small cost in confidence interval width relative to 'spglm'. Highly Adaptive Lasso (HAL) (see fit_hal), a flexible and adaptive spline regression estimator, is recommended for medium-small to large sample sizes.

Usage

npglm(
  formula,
  data,
  W,
  A,
  Y,
  estimand = c("CATE", "CATT", "TSM", "OR", "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 = ~.^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. Can also be a npglm fit/output object in which case machine-learning fits are reused (see vignette).

W

A character vector of covariates contained in data

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': Estimate the best parametric approximation of the conditional average treatment effect with Param_npCATE using the parametric model formula. Specifically, this estimand is the least-squares projection of the true CATE onto the parametric working model. 'CATT': Estimate the best parametric approximation of the conditional average treatment effect among the treated with Param_npCATE using the parametric model formula. Specifically, this estimand is the least-squares projection of the true CATE onto the parametric working model using only the observations with 'A=1' (among the treated). 'TSM': Estimate the best parametric approximation of the conditional treatment-specific mean 'E[Y|A=a,W]' for 'a' in levels_A. Specifically, this estimand is the least-squares projection of the true TSM onto the parametric working model. 'OR': Estimate the best parametric approximation of the conditional odds ratio with Param_npOR using the parametric model formula. Specifically, this estimand is the log-likelihood projection of the true conditional odds ratio onto the partially-linear logistic regression model with the true 'E[Y|A=0,W]' used as offset. 'RR': Projection of the true conditional relative risk onto a exponential working-model using log-linear/poisson regression.

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 adaptivelly choose the best learner. "HAL": Adaptive robust automatic machine-learning using the Highly Adaptive Lasso hal9001 "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. Note speed can vary 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.