catefitmean {precmed} | R Documentation |
Estimation of the conditional average treatment effect (CATE) score for continuous data
Description
Provides singly robust and doubly robust estimation of CATE score with up to 6 scoring methods among the following: Linear regression, boosting, two regressions, contrast regression, random forest and generalized additive model.
Usage
catefitmean(
data,
score.method,
cate.model,
ps.model,
ps.method = "glm",
init.model = NULL,
initial.predictor.method = "boosting",
minPS = 0.01,
maxPS = 0.99,
higher.y = TRUE,
prop.cutoff = seq(0.5, 1, length = 6),
xvar.smooth.score = NULL,
xvar.smooth.init = NULL,
tree.depth = 2,
n.trees.rf = 1000,
n.trees.boosting = 200,
B = 3,
Kfold = 6,
plot.gbmperf = FALSE,
error.maxNR = 0.001,
tune = c(0.5, 2),
seed = NULL,
verbose = 0,
...
)
Arguments
data |
A data frame containing the variables in the outcome and propensity score models;
a data frame with |
score.method |
A vector of one or multiple methods to estimate the CATE score.
Allowed values are: |
cate.model |
A formula describing the outcome model to be fitted. The outcome must appear on the left-hand side. |
ps.model |
A formula describing the propensity score model to be fitted.
The treatment must appear on the left-hand side.
The treatment must be a numeric vector coded as 0/1.
If data are from a RCT, specify |
ps.method |
A character value for the method to estimate the propensity score.
Allowed values include one of: |
init.model |
A formula describing the initial predictor model. The outcome must appear on the left-hand side.
It must be specified when |
initial.predictor.method |
A character vector for the method used to get initial outcome
predictions conditional on the covariates in |
minPS |
A numerical value (in [0, 1]) below which estimated propensity scores should be
truncated. Default is |
maxPS |
A numerical value (in (0, 1]) above which estimated propensity scores should be
truncated. Must be strictly greater than |
higher.y |
A logical value indicating whether higher ( |
prop.cutoff |
A vector of numerical values (in (0, 1]) specifying percentiles of
the estimated log CATE scores to define nested subgroups. Each element represents the
cutoff to separate observations in nested subgroups (below vs above cutoff).
The length of |
xvar.smooth.score |
A vector of characters indicating the name of the variables used as the
smooth terms if |
xvar.smooth.init |
A vector of characters indicating the name of the variables used as the
smooth terms if |
tree.depth |
A positive integer specifying the depth of individual trees in boosting
(usually 2-3). Used only if |
n.trees.rf |
A positive integer specifying the number of trees. Used only if
|
n.trees.boosting |
A positive integer specifying the maximum number of trees in boosting
(usually 100-1000). Used only if |
B |
A positive integer specifying the number of time cross-fitting is repeated in
|
Kfold |
A positive integer specifying the number of folds (parts) used in cross-fitting
to partition the data in |
plot.gbmperf |
A logical value indicating whether to plot the performance measures
in boosting. Used only if |
error.maxNR |
A numerical value > 0 indicating the minimum value of the mean absolute
error in Newton Raphson algorithm. Used only if |
tune |
A vector of 2 numerical values > 0 specifying tuning parameters for the
Newton Raphson algorithm. |
seed |
An optional integer specifying an initial randomization seed for reproducibility.
Default is |
verbose |
An integer value indicating what kind of intermediate progress messages should
be printed. |
... |
Additional arguments for |
Details
The CATE score represents an individual-level treatment effect, estimated with either linear regression, boosting, random forest and generalized additive model applied separately by treatment group or with two doubly robust estimators, two regressions and contrast regression (Yadlowsky, 2020) applied to the entire dataset.
catefitmean()
provides the coefficients of the CATE score for each scoring method requested
through score.method
. Currently, contrast regression is the only method which allows
for inference of the CATE coefficients by providing standard errors of the coefficients.
The coefficients can be used to learn the effect size of each variable and predict the
CATE score for a new observation.
catefitmean()
also provides the predicted CATE score of each observation in the data set,
for each scoring method. The predictions allow ranking the observations from potentially
high responders to the treatment to potentially low or standard responders.
The estimated ATE among nested subgroups of high responders are also provided by scoring method.
Note that the ATEs in catefitmean()
are derived based on the CATE score which is estimated
using the same data sample. Therefore, overfitting may be an issue. catefitmean()
is more
suitable to inspect the estimated ATEs across scoring methods as it implements internal cross
validation to reduce optimism.
Value
Returns a list containing the following components:
ate.gaussian
: A vector of numerical values of lengthprop.cutoff
containing the estimated ATE in nested subgroups (defined byprop.cutoff
) constructed based on the estimated CATE scores with Poisson regression. Only provided ifscore.method
includes'gaussian'
.ate.boosting
: Same asate.gaussian
, but with the nested subgroups based the estimated CATE scores with boosting. Only provided ifscore.method
includes'boosting'
.ate.twoReg
: Same asate.gaussian
, but with the nested subgroups based the estimated CATE scores with two regressions. Only provided ifscore.method
includes'twoReg'
.ate.contrastReg
: Same asate.gaussian
, but with the nested subgroups based the estimated CATE scores with contrast regression. Only provided ifscore.method
includes'contrastReg'
.ate.randomForest
: Same asate.gaussian
, but with the nested subgroups based the estimated CATE scores with random forest. Only provided ifscore.method
includes'gam'
.ate.gam
: Same asate.gaussian
, but with the nested subgroups based the estimated CATE scores with generalized additive model. Only provided ifscore.method
includes'gam'
.score.gaussian
: A vector of numerical values of length n (number of observations indata
) containing the estimated CATE scores according to the linear regression. Only provided ifscore.method
includes'gaussian'
.score.boosting
: Same asscore.gaussian
, but with estimated CATE score according to boosting. Only provided ifscore.method
includes'boosting'
.score.twoReg
: Same asscore.gaussian
, but with estimated CATE score according to two regressions. Only provided ifscore.method
includes'twoReg'
.score.contrastReg
: Same asscore.gaussian
, but with estimated CATE score according to contrast regression. Only provided ifscore.method
includes'contrastReg'
.score.randomForest
: Same asscore.gaussian
, but with estimated CATE score according to random forest. Only provided ifscore.method
includes'randomForest'
.score.gam
: Same asscore.gaussian
, but with estimated CATE score according to generalized additive model. Only provided ifscore.method
includes'gam'
.fit
: Additional details on model fitting ifscore.method
includes 'boosting' or 'contrastReg':result.boosting
: Details on the boosting model fitted to observations with treatment = 0($fit0.boosting)
and to observations with treatment = 1($fit1.boosting)
. Only provided ifscore.method
includes'boosting'
.result.randomForest
: Details on the boosting model fitted to observations with treatment = 0($fit0.randomForest)
and to observations with treatment = 1($fit1.randomForest)
. Only provided ifscore.method
includes'randomForest'
.result.gam
: Details on the boosting model fitted to observations with treatment = 0($fit0.gam)
and to observations with treatment = 1($fit1.gam)
. Only provided ifscore.method
includes'gam'
.result.contrastReg$sigma.contrastReg
: Variance-covariance matrix of the estimated CATE coefficients in contrast regression. Only provided ifscore.method
includes'contrastReg'
.
coefficients
: A data frame with the coefficients of the estimated CATE score byscore.method
. The data frame has number of rows equal to the number of covariates incate.model
and number of columns equal tolength(score.method)
. Ifscore.method
includes'contrastReg'
, the data frame has an additional column containing the standard errors of the coefficients estimated with contrast regression.'boosting'
,'randomForest'
,'gam'
do not have coefficient results because these methods do not express the CATE as a linear combination of coefficients and covariates.
References
Yadlowsky, S., Pellegrini, F., Lionetto, F., Braune, S., & Tian, L. (2020). Estimation and validation of ratio-based conditional average treatment effects using observational data. Journal of the American Statistical Association, 1-18. https://www.tandfonline.com/doi/full/10.1080/01621459.2020.1772080
See Also
catecvmean()
function