| Title: | The Extensible TMLE Framework |
|---|---|
| Description: | A general framework supporting the implementation of targeted maximum likelihood estimators (TMLEs) of a diverse range of statistical target parameters through a unified interface. The goal is that the exposed framework be as general as the mathematical framework upon which it draws. |
| Authors: | Jeremy Coyle [aut, cre, cph] (ORCID: <https://orcid.org/0000-0002-9874-6649>), Nima Hejazi [ctb] (ORCID: <https://orcid.org/0000-0002-7127-2789>) |
| Maintainer: | Jeremy Coyle <[email protected]> |
| License: | GPL-3 |
| Version: | 0.2.1 |
| Built: | 2026-05-13 07:58:00 UTC |
| Source: | https://github.com/tlverse/tmle3 |
all_ancestors returns a list of all_ancestors of the specified node.
time_ordering attempts to find a time_ordering for the variables.
all_ancestors(node_name, npsem) time_ordering(npsem)all_ancestors(node_name, npsem) time_ordering(npsem)
node_name |
the node to search for ancestors of |
npsem |
the NPSEM, defined by a list of |
Bound (Truncate) Likelihoods
bound(x, bounds)bound(x, bounds)
x |
the likelihood values to bound |
bounds |
Either a length two vector of c(lower,upper) or a lower bound, where the upper is then 1 - lower |
Represents a counterfactual likelihood where one or more likelihood factors has been replaced with an intervention as specified by intervention_list.
Inherits from Likelihood. Other factors (including their updates) are taken from an underlying observed_likelihood estimated from observed data.
make_CF_Likelihood(...)make_CF_Likelihood(...)
... |
Passes all arguments to the constructor. See documentation for the Constructor below. |
R6Class object.
Likelihood object
make_CF_Likelihood(observed_likelihood, intervention_list, ...)
observed_likelihoodLikelihood obect specifying the relevant factors of the observed likelihood
intervention_listA list of objects inheriting from LF_base, representing the intervention.
...Not currently used.
observed_likelihoodLikelihood obect specifying the relevant factors of the observed likelihood
intervention_listA list of objects inheriting from LF_base, representing the intervention.
Other Likelihood objects:
LF_base,
LF_derived,
LF_emp,
LF_fit,
LF_known,
LF_static,
LF_targeted,
Likelihood,
Targeted_Likelihood,
define_lf()
Define a Likelihood Factor
define_lf(LF_class, ...)define_lf(LF_class, ...)
LF_class |
the class of likelihood factor. Should inherit from |
... |
arguments that define the likelihood factor. See the constructor for the specified |
Other Likelihood objects:
CF_Likelihood,
LF_base,
LF_derived,
LF_emp,
LF_fit,
LF_known,
LF_static,
LF_targeted,
Likelihood,
Targeted_Likelihood
Define a Parameter
define_param(Param_class, ...)define_param(Param_class, ...)
Param_class |
the class of the Parameter. Should inherit from |
... |
arguments that define the parameter See the constructor for the specified |
Other Parameters:
Param_ATC,
Param_ATE,
Param_ATT,
Param_MSM,
Param_TSM,
Param_base,
Param_delta,
Param_mean,
Param_stratified,
Param_survival,
tmle3_Fit
PAR = Linear Contrast EY1-EY0
delta_param_ATEdelta_param_ATE
An object of class list of length 4.
Odds Ratio odds(Y1)/odds(Y0)
delta_param_ORdelta_param_OR
An object of class list of length 5.
PAF = 1 - (1/RR(EY/E0))
delta_param_PAFdelta_param_PAF
An object of class list of length 5.
PAR = Linear Contrast EY-EY0
delta_param_PARdelta_param_PAR
An object of class list of length 4.
Risk Ratio EY1/EY0
delta_param_RRdelta_param_RR
An object of class list of length 5.
Get and Plot Propensity Scores
density_formula(tmle_task, node = "A") get_propensity_scores(likelihood, tmle_task, node = "A") propensity_score_plot(likelihood, tmle_task, node = "A") propensity_score_table(likelihood, tmle_task, node = "A")density_formula(tmle_task, node = "A") get_propensity_scores(likelihood, tmle_task, node = "A") propensity_score_plot(likelihood, tmle_task, node = "A") propensity_score_table(likelihood, tmle_task, node = "A")
tmle_task |
a tmle_task data object |
node |
a character specifing which node to use |
likelihood |
a fitted likelihood object |
Converts a data.table column from continuous to a discrete factor
discretize_variable(data, variable, num_cats, breakpoints = NULL)discretize_variable(data, variable, num_cats, breakpoints = NULL)
data |
|
variable |
|
num_cats |
|
breakpoints |
|
the updated data.table, modified in place
Get Empirical Mean of EIFs from Estimates
ED_from_estimates(estimates)ED_from_estimates(estimates)
estimates |
a list of estimates objects |
A Likelihood factor models a conditional density function.
The conditioning set is defined as all parent nodes (defined in tmle3_Task). In the case of a continuous
outcome variable, where a full density isn't needed, this can also model a conditional mean. This is the base class, which
is intended to be abstract. See below for a list of possible likelihood factor classes.
R6Class object.
LF_base object
define_lf(LF_base, name, ..., type = "density")
namecharacter, the name of the factor. Should match a node name in the nodes specified by tmle3_Task$npsem
...Not currently used.
typecharacter, either "density", for conditional density or, "mean" for conditional mean
get_density(tmle_task)Get conditional density values for for the observations in tmle_task.
tmle_task: tmle3_Task to get likelihood values for
get_mean(tmle_task)Get conditional mean values for for the observations in tmle_task.
tmle_task: tmle3_Task to get likelihood values for
namecharacter, the name of the factor. Should match a node name in the nodes specified by tmle3_Task$npsem
typecharacter, either "density", for conditional density or, "mean" for conditional mean
variable_typevariable_type object, specifying the data type of the outcome variable. Only available after Likelihood training.
valuesPossible values of the outcome variable, retrivied from the variable_type object. Only available after Likelihood training.
Other Likelihood objects:
CF_Likelihood,
LF_derived,
LF_emp,
LF_fit,
LF_known,
LF_static,
LF_targeted,
Likelihood,
Targeted_Likelihood,
define_lf()
Uses an sl3 learner to estimate a likelihood factor from data.
Inherits from LF_base; see that page for documentation on likelihood factors in general.
R6Class object.
LF_base object
define_lf(LF_fit, name, learner, ..., type = "density")
namecharacter, the name of the factor. Should match a node name in the nodes specified by tmle3_Task$npsem
learnerAn sl3 learner to be used to estimate the factor
...Not currently used.
typecharacter, either "density", for conditional density or, "mean" for conditional mean
learnerThe learner or learner fit object
Other Likelihood objects:
CF_Likelihood,
LF_base,
LF_emp,
LF_fit,
LF_known,
LF_static,
LF_targeted,
Likelihood,
Targeted_Likelihood,
define_lf()
Uses the empirical probability distribution (puts mass on each of the observations, or uses weights if specified) to estimate a marginal density.
Inherits from LF_base; see that page for documentation on likelihood factors in general.
Only compatible with marginal likelihoods (no parent nodes). Only compatible with densities (no conditional means).
The type argument will be ignored if specified.
R6Class object.
LF_base object
define_lf(LF_emp, name, ...)
namecharacter, the name of the factor. Should match a node name in the nodes specified by tmle3_Task$npsem
...Not currently used.
Other Likelihood objects:
CF_Likelihood,
LF_base,
LF_derived,
LF_fit,
LF_known,
LF_static,
LF_targeted,
Likelihood,
Targeted_Likelihood,
define_lf()
Uses an sl3 learner to estimate a likelihood factor from data.
Inherits from LF_base; see that page for documentation on likelihood factors in general.
R6Class object.
LF_base object
define_lf(LF_fit, name, learner, ..., type = "density")
namecharacter, the name of the factor. Should match a node name in the nodes specified by tmle3_Task$npsem
learnerAn sl3 learner to be used to estimate the factor
...Not currently used.
typecharacter, either "density", for conditional density or, "mean" for conditional mean
learnerThe learner or learner fit object
Other Likelihood objects:
CF_Likelihood,
LF_base,
LF_derived,
LF_emp,
LF_known,
LF_static,
LF_targeted,
Likelihood,
Targeted_Likelihood,
define_lf()
Incorporate existing knowledge about the likelihood
Inherits from LF_base; see that page for documentation on likelihood factors in general.
R6Class object.
LF_base object
define_lf(LF_fit, name, mean_fun, density_fun, ..., type = "density")
namecharacter, the name of the factor. Should match a node name in the nodes specified by tmle3_Task$npsem
mean_funA function that takes a sl3 regression task and returns true conditional means
density_funA function that takes a sl3 regression task and returns true conditional densities
...Not currently used.
typecharacter, either "density", for conditional density or, "mean" for conditional mean
Other Likelihood objects:
CF_Likelihood,
LF_base,
LF_derived,
LF_emp,
LF_fit,
LF_static,
LF_targeted,
Likelihood,
Targeted_Likelihood,
define_lf()
Likelihood factor for a variable that only has one value with probability 1. This is used for static interventions.
Inherits from LF_base; see that page for documentation on likelihood factors in general.
R6Class object.
LF_base object
define_lf(LF_static, name, type, value, ...)
namecharacter, the name of the factor. Should match a node name in the nodes specified by tmle3_Task$npsem
typecharacter, either "density", for conditional density or, "mean" for conditional mean
valuethe static value
...Not currently used.
valuethe static value.
Other Likelihood objects:
CF_Likelihood,
LF_base,
LF_derived,
LF_emp,
LF_fit,
LF_known,
LF_targeted,
Likelihood,
Targeted_Likelihood,
define_lf()
Uses an sl3 learner to estimate a likelihood factor from data.
Inherits from LF_base; see that page for documentation on likelihood factors in general.
R6Class object.
LF_base object
define_lf(LF_fit, name, learner, ..., type = "density")
namecharacter, the name of the factor. Should match a node name in the nodes specified by tmle3_Task$npsem
learnerAn sl3 learner to be used to estimate the factor
...Not currently used.
typecharacter, either "density", for conditional density or, "mean" for conditional mean
learnerThe learner or learner fit object
Other Likelihood objects:
CF_Likelihood,
LF_base,
LF_derived,
LF_emp,
LF_fit,
LF_known,
LF_static,
Likelihood,
Targeted_Likelihood,
define_lf()
This object represents an estimate of the relevant factors of the likelihood estimated from data, or based on a priori knowledge where appropriate.
That is, it represents some subset of $P_n$. This object inherits from Lrnr_base, and so shares some properties with sl3 learners.
Specifically, to fit a likelihood object to data, one calls likelihood$train(tmle3_task).
Each likelihood factor is represented by an object inheriting from LF_base.
make_Likelihood(...)make_Likelihood(...)
... |
Passes all arguments to the constructor. See documentation for the Constructor below. |
R6Class object.
Likelihood object
make_Likelihood(factor_list, ...)
factor_listA list of objects inheriting from LF_base, representing the individual relevant factors.
...Not currently used.
validate_task(tmle_task)Ensure that this likelihood is compatible with a particular tmle3_Task, in that the factor names must match the tmle_task$npsem names.
tmle_task: the tmle3_Task to validate.
get_initial_likelihoods(tmle_task, nodes=NULL)Gets initial (i.e. before any TMLE updates) likelihood values for the specified nodes (or all nodes if none are specified)
for the observations in tmle_task.
tmle_task: tmle3_Task to get likelihood values for
nodes: character vectors, the list of nodes to get likelihood values for. If missing, values will be provided for all nodes.
get_likelihoods(tmle_task, nodes=NULL)Gets updated (i.e. after all TMLE updates) likelihood values for the specified nodes (or all nodes if none are specified)
for the observations in tmle_task.
tmle_task: tmle3_Task to get likelihood values for
nodes: character vectors, the list of nodes to get likelihood values for. If missing, values will be provided for all nodes.
get_possible_counterfactuals(nodes)Gets all possible combination of counterfactual values for a set of nodes. This is useful for marginalizing over a node. Returns a data.frame
with one row per possibility.
nodes: character vectors, the list of nodes to get counterfactual values for. If missing, values will be provided for all nodes.
factor_listThe list of LF_base objects specifying the relevant likelihood factors
observed_valuesThe likelihood values for the observed data. These are cached, as they are used in many places in TMLE
update_listA list of tmle_updates that have been calculated for this likelihood
Other Likelihood objects:
CF_Likelihood,
LF_base,
LF_derived,
LF_emp,
LF_fit,
LF_known,
LF_static,
LF_targeted,
Targeted_Likelihood,
define_lf()
Cache Likelihood values, update those values
Parameter definition for the Additive Effect of Treatment Among the Treated (ATT). Currently supports multiple static intervention nodes. Does yet not support dynamic rule or stochastic interventions.
R6Class object.
Param_base object
clever covariates doesn't support updates; always uses initial (necessary for iterative TMLE, e.g. stochastic intervention)
doesn't integrate over possible counterfactuals (necessary for stochastic intervention)
clever covariate gets recalculated all the time (inefficient)
define_param(Param_ATT, observed_likelihood, intervention_list, ..., outcome_node)
observed_likelihoodA Likelihood corresponding to the observed likelihood
intervention_list_treatmentA list of objects inheriting from LF_base, representing the treatment intervention.
intervention_list_controlA list of objects inheriting from LF_base, representing the control intervention.
...Not currently used.
outcome_nodecharacter, the name of the node that should be treated as the outcome
cf_likelihood_treatmentthe counterfactual likelihood for the treatment
cf_likelihood_controlthe counterfactual likelihood for the control
intervention_list_treatmentA list of objects inheriting from LF_base, representing the treatment intervention
intervention_list_controlA list of objects inheriting from LF_base, representing the control intervention
Other Parameters:
Param_ATE,
Param_ATT,
Param_MSM,
Param_TSM,
Param_base,
Param_delta,
Param_mean,
Param_stratified,
Param_survival,
define_param(),
tmle3_Fit
Parameter definition for the Average Treatment Effect (ATE).
R6Class object.
Param_base object
define_param(Param_ATT, observed_likelihood, intervention_list, ..., outcome_node)
observed_likelihoodA Likelihood corresponding to the observed likelihood
intervention_list_treatmentA list of objects inheriting from LF_base, representing the treatment intervention.
intervention_list_controlA list of objects inheriting from LF_base, representing the control intervention.
...Not currently used.
outcome_nodecharacter, the name of the node that should be treated as the outcome
cf_likelihood_treatmentthe counterfactual likelihood for the treatment
cf_likelihood_controlthe counterfactual likelihood for the control
intervention_list_treatmentA list of objects inheriting from LF_base, representing the treatment intervention
intervention_list_controlA list of objects inheriting from LF_base, representing the control intervention
Other Parameters:
Param_ATC,
Param_ATT,
Param_MSM,
Param_TSM,
Param_base,
Param_delta,
Param_mean,
Param_stratified,
Param_survival,
define_param(),
tmle3_Fit
Parameter definition for the Additive Effect of Treatment Among the Treated (ATT). Currently supports multiple static intervention nodes. Does yet not support dynamic rule or stochastic interventions.
R6Class object.
Param_base object
clever covariates doesn't support updates; always uses initial (necessary for iterative TMLE, e.g. stochastic intervention)
doesn't integrate over possible counterfactuals (necessary for stochastic intervention)
clever covariate gets recalculated all the time (inefficient)
define_param(Param_ATT, observed_likelihood, intervention_list, ..., outcome_node)
observed_likelihoodA Likelihood corresponding to the observed likelihood
intervention_list_treatmentA list of objects inheriting from LF_base, representing the treatment intervention.
intervention_list_controlA list of objects inheriting from LF_base, representing the control intervention.
...Not currently used.
outcome_nodecharacter, the name of the node that should be treated as the outcome
cf_likelihood_treatmentthe counterfactual likelihood for the treatment
cf_likelihood_controlthe counterfactual likelihood for the control
intervention_list_treatmentA list of objects inheriting from LF_base, representing the treatment intervention
intervention_list_controlA list of objects inheriting from LF_base, representing the control intervention
Other Parameters:
Param_ATC,
Param_ATE,
Param_MSM,
Param_TSM,
Param_base,
Param_delta,
Param_mean,
Param_stratified,
Param_survival,
define_param(),
tmle3_Fit
A parameter is a function of the likelihood. Once given a Likelihood object, a parameter will a value.
These objects also contain information about the efficient influence function (EIF) of a parameter, as well as its clever covariate(s).
R6Class object.
Param_base object
define_param(Param_base, observed_likelihood, ..., outcome_node)
observed_likelihoodA Likelihood corresponding to the observed likelihood
...Not currently used.
outcome_nodecharacter, the name of the node that should be treated as the outcome
clever_covariates(tmle_task = NULL)Get the clever covariates for an TMLE update step.
tmle_task: tmle3_Task to get clever covariate values for.
If NULL, the tmle_task used to train the observed likelihood will be used
estimates(tmle_task = NULL)Get the parameter estimates and influence curve values.
tmle_task: tmle3_Task to get clever covariate values for.
If NULL, the tmle_task used to train the observed likelihood will be used
observed_likelihoodthe observed likelihood
outcome_nodecharacter, the name of the outcome node
Other Parameters:
Param_ATC,
Param_ATE,
Param_ATT,
Param_MSM,
Param_TSM,
Param_delta,
Param_mean,
Param_stratified,
Param_survival,
define_param(),
tmle3_Fit
These parameters are smooth functionals of one or more other params They are not fit directly with tmle, but are estimated using the delta method todo: better docs They do not return have clever covariates
Other Parameters:
Param_ATC,
Param_ATE,
Param_ATT,
Param_MSM,
Param_TSM,
Param_base,
Param_mean,
Param_stratified,
Param_survival,
define_param(),
tmle3_Fit
Parameter for marginal mean of Y: . No TMLE update needed, but can be used in delta method calculations.
Useful for example, in calculating attributable risks.
R6Class object.
Param_base object
define_param(Param_TSM, observed_likelihood, intervention_list, ..., outcome_node)
observed_likelihoodA Likelihood corresponding to the observed likelihood
...Not currently used.
outcome_nodecharacter, the name of the node that should be treated as the outcome
cf_likelihoodthe counterfactual likelihood for this treatment
intervention_listA list of objects inheriting from LF_base, representing the intervention
Other Parameters:
Param_ATC,
Param_ATE,
Param_ATT,
Param_MSM,
Param_TSM,
Param_base,
Param_delta,
Param_stratified,
Param_survival,
define_param(),
tmle3_Fit
Stratified Parameter Estimates via MSM
R6Class object.
Param_base object
clever covariates doesn't support updates; always uses initial (necessary for iterative TMLE, e.g. stochastic intervention)
clever covariate gets recalculated all the time (inefficient)
define_param(Param_MSM, observed_likelihood, strata_variable, ...)
observed_likelihoodA Likelihood corresponding to the observed likelihood
msmform of the MSM. Default is "A + V", consistent with the default of
treatment_node and strata_name.
weight"Cond.Prob.", "Unif." or custom input function. Note that custom function should support vector input. Default is "Cond.Prob.".
...Not currently used.
covariate_nodecharacter, the name of the node that should be treated as the covariate
treatment_nodecharacter, the name of the node that should be treated as the treatment
outcome_nodecharacter, the name of the node that should be treated as the outcome
cf_likelihoodthe counterfactual likelihood for this treatment
Other Parameters:
Param_ATC,
Param_ATE,
Param_ATT,
Param_TSM,
Param_base,
Param_delta,
Param_mean,
Param_stratified,
Param_survival,
define_param(),
tmle3_Fit
Stratified Parameter Estimates
R6Class object.
Param_base object
clever covariates doesn't support updates; always uses initial (necessary for iterative TMLE, e.g. stochastic intervention)
doesn't integrate over possible counterfactuals (necessary for stochastic intervention)
clever covariate gets recalculated all the time (inefficient)
define_param(Param_TSM, observed_likelihood, intervention_list, ..., outcome_node)
observed_likelihoodA Likelihood corresponding to the observed likelihood
intervention_listA list of objects inheriting from LF_base, representing the intervention.
...Not currently used.
outcome_nodecharacter, the name of the node that should be treated as the outcome
cf_likelihoodthe counterfactual likelihood for this treatment
intervention_listA list of objects inheriting from LF_base, representing the intervention
Other Parameters:
Param_ATC,
Param_ATE,
Param_ATT,
Param_MSM,
Param_TSM,
Param_base,
Param_delta,
Param_mean,
Param_survival,
define_param(),
tmle3_Fit
Survival Curve
R6Class object.
Param_base object
define_param(Param_survival, observed_likelihood, intervention_list, ..., outcome_node)
observed_likelihoodA Likelihood corresponding to the observed likelihood
intervention_listA list of objects inheriting from LF_base, representing the intervention.
...Not currently used.
outcome_nodecharacter, the name of the node that should be treated as the outcome
cf_likelihoodthe counterfactual likelihood for this treatment
intervention_listA list of objects inheriting from LF_base, representing the intervention
Other Parameters:
Param_ATC,
Param_ATE,
Param_ATT,
Param_MSM,
Param_TSM,
Param_base,
Param_delta,
Param_mean,
Param_stratified,
define_param(),
tmle3_Fit
Parameter definition for the Treatment Specific Mean (TSM): $E_W[E_Y|A(Y|A=a|W)|$. Currently supports multiple static intervention nodes. Does yet not support dynamic rule or stochastic interventions.
R6Class object.
Param_base object
clever covariates doesn't support updates; always uses initial (necessary for iterative TMLE, e.g. stochastic intervention)
doesn't integrate over possible counterfactuals (necessary for stochastic intervention)
clever covariate gets recalculated all the time (inefficient)
define_param(Param_TSM, observed_likelihood, intervention_list, ..., outcome_node)
observed_likelihoodA Likelihood corresponding to the observed likelihood
intervention_listA list of objects inheriting from LF_base, representing the intervention.
...Not currently used.
outcome_nodecharacter, the name of the node that should be treated as the outcome
cf_likelihoodthe counterfactual likelihood for this treatment
intervention_listA list of objects inheriting from LF_base, representing the intervention
Other Parameters:
Param_ATC,
Param_ATE,
Param_ATT,
Param_MSM,
Param_base,
Param_delta,
Param_mean,
Param_stratified,
Param_survival,
define_param(),
tmle3_Fit
Plot results of variable importance analysis
plot_vim(vim_results)plot_vim(vim_results)
vim_results |
Object produced by invoking |
Handles the common W (covariates), A (treatment/intervention), Y (outcome) data structure
point_tx_npsem(node_list, variable_types = NULL) point_tx_task(data, node_list, variable_types = NULL, ...) point_tx_likelihood(tmle_task, learner_list)point_tx_npsem(node_list, variable_types = NULL) point_tx_task(data, node_list, variable_types = NULL, ...) point_tx_likelihood(tmle_task, learner_list)
node_list |
a list of character vectors, listing the variables that comprise each node |
variable_types |
a list of variable types, one for each node. If missing, variable types will be guessed |
data |
a |
... |
extra arguments. |
tmle_task |
a |
learner_list |
a list of sl3 learners, one for A and one for Y to be used for likelihood estimation |
Process data to account for missingness in preparation for TMLE
process_missing( data, node_list, complete_nodes = c("A", "Y"), impute_nodes = NULL, max_p_missing = 0.5 )process_missing( data, node_list, complete_nodes = c("A", "Y"), impute_nodes = NULL, max_p_missing = 0.5 )
data |
|
node_list |
|
complete_nodes |
|
impute_nodes |
|
max_p_missing |
|
Rows where there is missingness in any of the complete_nodes will be
dropped. Then, missingness will be median-imputed for the variables in the impute_nodes.
Indicator variables of missingness will be generated for these nodes.
Then covariates will be processed as follows:
any covariate with more than max_p_missing missingness will be dropped
indicators of missingness will be generated
missing values will be median-imputed
list containing the following elements:
data, the updated dataset
node_list, the updated list of nodes
n_dropped, the number of observations dropped
dropped_cols, the variables dropped due to excessive missingness
Logistic Submodel Fluctuation
submodel_logit(eps, X, offset)submodel_logit(eps, X, offset)
eps |
... |
X |
... |
offset |
... |
Generates a data.table summarizing results with inference
summary_from_estimates( task, estimates, param_types = NULL, param_names = NULL, init_psi = NULL, simultaneous_ci = FALSE )summary_from_estimates( task, estimates, param_types = NULL, param_names = NULL, init_psi = NULL, simultaneous_ci = FALSE )
task |
|
estimates |
|
param_types |
the types of the parameters being estimated |
param_names |
the names of the parameters being estimated |
init_psi |
the names of the parameters being estimated |
simultaneous_ci |
if TRUE, calculate simulatenous confidence intervals |
data.table summarizing results
Handles the W (covariates), A (treatment/intervention), T_tilde (time-to-event), Delta (censoring indicator), t_max (the maximum time to estimate) survival data structure
survival_tx_npsem(node_list, variable_types = NULL) survival_tx_task(data, node_list, variable_types = NULL, ...) survival_tx_likelihood(tmle_task, learner_list)survival_tx_npsem(node_list, variable_types = NULL) survival_tx_task(data, node_list, variable_types = NULL, ...) survival_tx_likelihood(tmle_task, learner_list)
node_list |
a list of character vectors, listing the variables that comprise each node |
variable_types |
a list of variable types, one for each node. If missing, variable types will be guessed |
data |
a |
... |
extra arguments. |
tmle_task |
a |
learner_list |
a list of sl3 learners, one for A and one for Y to be used for likelihood estimation |
Represents a likelihood where one or more likelihood factors has been updated to target a set of parameter(s)
R6Class object.
Likelihood object
make_Likelihood(factor_list, ...)
factor_listA list of objects inheriting from LF_base, representing the individual relevant factors.
...Not currently used.
validate_task(tmle_task)Ensure that this likelihood is compatible with a particular tmle3_Task, in that the factor names must match the tmle_task$npsem names.
tmle_task: the tmle3_Task to validate.
get_initial_likelihoods(tmle_task, nodes=NULL)Gets initial (i.e. before any TMLE updates) likelihood values for the specified nodes (or all nodes if none are specified)
for the observations in tmle_task.
tmle_task: tmle3_Task to get likelihood values for
nodes: character vectors, the list of nodes to get likelihood values for. If missing, values will be provided for all nodes.
get_likelihoods(tmle_task, nodes=NULL)Gets updated (i.e. after all TMLE updates) likelihood values for the specified nodes (or all nodes if none are specified)
for the observations in tmle_task.
tmle_task: tmle3_Task to get likelihood values for
nodes: character vectors, the list of nodes to get likelihood values for. If missing, values will be provided for all nodes.
get_possible_counterfactuals(nodes)Gets all possible combination of counterfactual values for a set of nodes. This is useful for marginalizing over a node. Returns a data.frame
with one row per possibility.
nodes: character vectors, the list of nodes to get counterfactual values for. If missing, values will be provided for all nodes.
factor_listThe list of LF_base objects specifying the relevant likelihood factors
observed_valuesThe likelihood values for the observed data. These are cached, as they are used in many places in TMLE
update_listA list of tmle_updates that have been calculated for this likelihood
Other Likelihood objects:
CF_Likelihood,
LF_base,
LF_derived,
LF_emp,
LF_fit,
LF_known,
LF_static,
LF_targeted,
Likelihood,
define_lf()
O=(W,A,Y) W=Covariates A=Treatment (binary or categorical) Y=Outcome (binary or bounded continuous)
tmle_ATC(treatment_level, control_level)tmle_ATC(treatment_level, control_level)
treatment_level |
the level of A that corresponds to treatment |
control_level |
the level of A that corresponds to a control or reference level |
O=(W,A,Y) W=Covariates A=Treatment (binary or categorical) Y=Outcome (binary or bounded continuous)
tmle_ATE(treatment_level, control_level)tmle_ATE(treatment_level, control_level)
treatment_level |
the level of A that corresponds to treatment |
control_level |
the level of A that corresponds to a control or reference level |
O=(W,A,Y) W=Covariates A=Treatment (binary or categorical) Y=Outcome (binary or bounded continuous)
tmle_ATT(treatment_level, control_level)tmle_ATT(treatment_level, control_level)
treatment_level |
the level of A that corresponds to treatment |
control_level |
the level of A that corresponds to a control or reference level |
O=(W,A,Y) W=Covariates A=Treatment (binary or categorical) Y=Outcome (binary or bounded continuous)
tmle_MSM(weight = "Cond.Prob.", n_samples = 30)tmle_MSM(weight = "Cond.Prob.", n_samples = 30)
weight |
h(A, V) |
n_samples |
number of samples to draw for each observation if A is continuous |
O = (W, A, Y) W = Covariates A = Treatment (binary or categorical) Y = Outcome (binary or bounded continuous)
tmle_OR(baseline_level, contrast_level)tmle_OR(baseline_level, contrast_level)
baseline_level |
The baseline risk group. |
contrast_level |
The contrast risk group. |
O=(W,A,Y) W=Covariates A=Treatment (binary or categorical) Y=Outcome (binary or bounded continuous)
tmle_PAR(baseline_level)tmle_PAR(baseline_level)
baseline_level |
the baseline risk group |
O = (W, A, Y) W = Covariates A = Treatment (binary or categorical) Y = Outcome (binary or bounded continuous)
tmle_RR(baseline_level, contrast_level)tmle_RR(baseline_level, contrast_level)
baseline_level |
The baseline risk group. |
contrast_level |
The contrast risk group. |
O=(W,A,Y) W=Covariates A=Treatment (binary or categorical) Y=Outcome (binary or bounded continuous)
tmle_stratified(base_spec, base_estimate = TRUE)tmle_stratified(base_spec, base_estimate = TRUE)
base_spec |
An underlying spec to stratify. |
base_estimate |
Indicate whether to report base parameter. |
See the associated handbook chapter
tmle_survival(treatment_level, control_level, target_times = NULL, ...)tmle_survival(treatment_level, control_level, target_times = NULL, ...)
treatment_level |
the level of A that corresponds to treatment |
control_level |
the level of A that corresponds to a control or reference level |
target_times |
the time points to be targeted at during the TMLE adjustment |
... |
others args passed to spec |
O=(W,A,Y) W=Covariates A=Treatment (binary or categorical) Y=Outcome (binary or bounded continuous)
tmle_TSM_all()tmle_TSM_all()
Using a tmle3_Spec object, fit a TMLE
tmle3(tmle_spec, data, node_list, learner_list = NULL)tmle3(tmle_spec, data, node_list, learner_list = NULL)
tmle_spec |
|
data |
|
node_list |
|
learner_list |
|
A tmle3_Fit object
A tmle_fit object, containing initial and updated estimates, as well as data about the fitting procedure. TMLE updates are calculated when the object is constructed.
fit_tmle3(...)fit_tmle3(...)
... |
Passes all arguments to the constructor. See documentation for the Constructor. |
R6Class object.
Param_base object
fit_tmle3(tmle_task, likelihood, tmle_params, updater, max_it=100, ...)
tmle_taskA tmle3_Task object defining the data and NP-SEM
likelihoodA Likelihood object defining the factorized likelihood
tmle_paramsA list of parameters inheriting from Param_base defining the parameter(s) of interest
updaterA tmle3_Update object defining the update procedure, including submodel and loss function
maxitinteger, maximum number of TMLE iterations
...Not currently used.
set_timings(start_time, task_time, likelihood_time, params_time, fit_time)Provide the timings for the different steps of the TMLE procedure, for later reporting to the user
tmle_task: tmle3_Task to get clever covariate values for.
If NULL, the tmle_task used to train the observed likelihood will be used
estimates(tmle_task = NULL)Get the parameter estimates and influence curve values.
tmle_task: tmle3_Task to get clever covariate values for.
If NULL, the tmle_task used to train the observed likelihood will be used
tmle_taskA tmle3_Task object defining the data and NP-SEM
likelihoodA Likelihood object defining the factorized likelihood
tmle_paramsA list of parameters inheriting from Param_base defining the parameter(s) of interest
tmle_namesA list of parameter names, obtained by calling param$name on each parameter
updaterA tmle3_Update object defining the update procedure, including submodel and loss function
stepsinteger, he number of steps until TMLE converged
EDvector, the mean of the EIF for all the parameters
initial_psivector, the initial parameter estimates
estimateslist, final parameter estimates and ICs
summarydata.table, summary of results
timingsdata.frame, timings for each step (provided by tmle3_Fit$set_timings)
Other Parameters:
Param_ATC,
Param_ATE,
Param_ATT,
Param_MSM,
Param_TSM,
Param_base,
Param_delta,
Param_mean,
Param_stratified,
Param_survival,
define_param()
This class defines a node in an NPSEM
define_node(...)define_node(...)
... |
Passes all arguments to the constructor. See documentation for the Constructor below. |
R6Class object.
tmle3_Node object
make_tmle3_task(name, variables, parents = c(), variable_type = NULL)
namecharacter, the name of node
variablescharacter vector, the names of the variables that comprise the node
parentscharacter vector, the names of the parent nodes. If censoring, node is assumed to have no parents.
variable_typevariable_type object, specifying the data type of this variable.
If censoring, variable_type will be guessed later from the data.
guess_variable_type(variable_data)Guesses the variable_type from the provided data.
This will be called by the tmle3_Task constructor if no variable_type was provided.
variable_data: the observed variable data.
namecharacter, the name of node
variablescharacter vector, the names of the variables that comprise the node
parentscharacter vector, the names of the parent nodes. If censoring, node is assumed to have no parents.
variable_typevariable_type object, specifying the data type of this variable.
Current limitations: pretty much tailored to Param_TSM
Defines a TML Estimator (except for the data)
Defines a TML Estimator (except for the data)
Defines a TML Estimator (except for the data)
Defines a Stratified TML Estimator with MSM (except for the data)
Current limitations: pretty much tailored to Param_TSM see TODOs for places generalization can be added
Current limitations: pretty much tailored to Param_TSM see TODOs for places generalization can be added
Current limitations: pretty much tailored to Param_TSM see TODOs for places generalization can be added
Defines a Stratified TML Estimator (except for the data)
Defines a TML Estimator (except for the data)
Current limitations: pretty much tailored to Param_TSM
See TODOs for places generalization can be added
This class inherits from sl3_Task. In addition to all the
methods supported by sl3_Task, it supports the following.
make_tmle3_Task(...)make_tmle3_Task(...)
... |
Passes all arguments to the constructor. See documentation for the Constructor below. |
R6Class object.
tmle3_Task object
make_tmle3_task(data, npsem, ...)
dataA data.frame or data.table containing the underlying data
npsemA list of tmle3_Node objects, where each is created using define_node. These specify the NPSEM. See examples.
...Other arguments passed to the constructor of sl3_Task. NB: Support for these is currently limited.
get_tmle_node(node_name, bound = FALSE)Gets the data associated with a tmle_node. Bounds the data if requested.
node_name: character, the name of the node to get.
bound: logical, if true the data is transformed to be in (0,1) based on pre-specified bounds.
get_regression_task(target_node, bound = FALSE)Gets a sl3_Task suitable for fitting the conditional likelihood factor with the target_node
as the outcome.
target_node: character, the name of the node to get.
generate_counterfacutal_task(uuid, new_data)Generates a new tmle_Task where some nodes are overridden to have counterfactual values.
uuid: A unique identifier for the counterfactual task, as generated by UUIDgenerate
new_data: A data.frame or data.table with the counterfactual values. Column names must refer to node names in the npsem for this task.
npsemThe list of tmle3_Node objects specifying the NPSEM
Current Limitations: loss function and submodel are hard-coded (need to accept arguments for these)
define_param(maxit, cvtmle, one_dimensional, constrain_step, delta_epsilon, verbose)
maxitThe maximum number of update iterations
cvtmleIf TRUE, use CV-likelihood values when
calculating updates.
one_dimensionalIf TRUE, collapse clever covariates
into a one-dimensional clever covariate scaled by the mean of their
EIFs.
constrain_stepIf TRUE, step size is at most
delta_epsilon (it can be smaller if a smaller step decreases
the loss more).
delta_epsilonThe maximum step size allowed if
constrain_step is TRUE.
convergence_typeThe convergence criterion to use: (1)
"scaled_var" corresponds to sqrt(Var(D)/n)/logn (the default)
while (2) "sample_size" corresponds to 1/n.
fluctuation_typeWhether to include the auxiliary covariate
for the fluctuation model as a covariate or to treat it as a weight.
Note that the option "weighted" is incompatible with a
multi-epsilon submodel (one_dimensional = FALSE).
use_bestIf TRUE, the final updated likelihood is set to the
likelihood that minimizes the ED instead of the likelihood at the last update
step.
verboseIf TRUE, diagnostic output is generated
about the updating procedure.
Current Limitations: loss function and submodel are hard-coded (need to accept arguments for these)
define_param(maxit, cvtmle, one_dimensional, constrain_step, delta_epsilon, verbose)
maxitThe maximum number of update iterations
cvtmleIf TRUE, use CV-likelihood values when
calculating updates.
one_dimensionalIf TRUE, collapse clever covariates
into a one-dimensional clever covariate scaled by the mean of their
EIFs.
constrain_stepIf TRUE, step size is at most
delta_epsilon (it can be smaller if a smaller step decreases
the loss more).
delta_epsilonThe maximum step size allowed if
constrain_step is TRUE.
convergence_typeThe convergence criterion to use: (1)
"scaled_var" corresponds to sqrt(Var(D)/n)/logn (the default)
while (2) "sample_size" corresponds to 1/n.
fluctuation_typeWhether to include the auxiliary covariate
for the fluctuation model as a covariate or to treat it as a weight.
Note that the option "weighted" is incompatible with a
multi-epsilon submodel (one_dimensional = FALSE).
verboseIf TRUE, diagnostic output is generated
about the updating procedure.
Compute Variable Importance Measures (VIM) with any given parameter
tmle3_vim( tmle_spec, data, node_list, learner_list = NULL, adjust_for_other_A = TRUE )tmle3_vim( tmle_spec, data, node_list, learner_list = NULL, adjust_for_other_A = TRUE )
tmle_spec |
|
data |
|
node_list |
|
learner_list |
|
adjust_for_other_A |
Whether or not to adjust for other specified intervention nodes. |
Manually Train Likelihood Factor The internal training process for likelihood factors is somewhat obtuse, so this function does the steps to manually train one, which is helpful if you want to use a likelihood factor independently of a likelihood object
train_lf(lf, tmle_task)train_lf(lf, tmle_task)
lf |
the likelihood factor to train |
tmle_task |
the task to use for training |