econml._cate_estimator
Base classes for all CATE estimators.
Classes
Base class for all CATE estimators in this package. |
|
Mixin for cate models where the final stage is a debiased lasso model. |
|
Mixin for cate models where the final stage is a debiased lasso model. |
|
Base class for CATE estimators in this package where the outcome is linear given some treatment featurization. |
|
Base class for models where the final stage is a linear model. |
|
Base class for models where the final stage is a linear model. |
|
Mixin class that offers inference='statsmodels' options to the CATE estimator that inherits it. |
|
Mixin class that offers inference='statsmodels' options to the CATE estimator that inherits it. |
|
Mixin which automatically handles promotions of scalar treatments to the appropriate shape. |
- class econml._cate_estimator.BaseCateEstimator[source]
Bases:
object
Base class for all CATE estimators in this package.
- ate(X=None, *, T0, T1)[source]
Calculate the average treatment effect \(E_X[\tau(X, T0, T1)]\).
The effect is calculated between the two treatment points and is averaged over the population of X variables.
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Average treatment effects on each outcome Note that when Y is a vector rather than a 2-dimensional array, the result will be a scalar
- Return type:
float or (d_y,) array
- ate_inference(X=None, *, T0, T1)[source]
Inference results for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- ate_interval(X=None, *, T0, T1, alpha=0.05)[source]
Confidence intervals for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
ate(X, T0, T1)
, type ofate(X, T0, T1))
)
- cate_feature_names(feature_names=None)[source]
Public interface for getting feature names.
To be overriden by estimators that apply transformations the input features.
- cate_output_names(output_names=None)[source]
Public interface for getting output names.
To be overriden by estimators that apply transformations the outputs.
- cate_treatment_names(treatment_names=None)[source]
Public interface for getting treatment names.
To be overriden by estimators that apply transformations the treatments.
- abstract effect(X=None, *, T0, T1)[source]
Calculate the heterogeneous treatment effect \(\tau(X, T0, T1)\).
The effect is calculated between the two treatment points conditional on a vector of features on a set of m test samples \(\{T0_i, T1_i, X_i\}\).
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Heterogeneous treatment effects on each outcome for each sample Note that when Y is a vector rather than a 2-dimensional array, the corresponding singleton dimension will be collapsed (so this method will return a vector)
- Return type:
(m, d_y) matrix
- effect_inference(X=None, *, T0=0, T1=1)[source]
Inference results for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)[source]
Confidence intervals for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
effect(X, T0, T1)
, type ofeffect(X, T0, T1))
)
- abstract fit(*args, inference=None, **kwargs)[source]
Estimate the counterfactual model from data.
That is, estimates functions \(\tau(X, T0, T1)\), \(\partial \tau(T, X)\).
Note that the signature of this method may vary in subclasses (e.g. classes that don’t support instruments will not allow a Z argument)
- Parameters:
Y ((n, d_y) matrix or vector of length n) – Outcomes for each sample
T ((n, d_t) matrix or vector of length n) – Treatments for each sample
X ((n, d_x) matrix, optional) – Features for each sample
W ((n, d_w) matrix, optional) – Controls for each sample
Z ((n, d_z) matrix, optional) – Instruments for each sample
inference (str or
Inference
instance, optional) – Method for performing inference. All estimators support'bootstrap'
(or an instance ofBootstrapInference
), some support other methods as well.
- Return type:
self
- marginal_ate(T, X=None)[source]
Calculate the average marginal effect \(E_{T, X}[\partial\tau(T, X)]\).
The marginal effect is calculated around a base treatment point and averaged over the population of X.
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Average marginal effects on each outcome Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will be a scalar)
- Return type:
(d_y, d_t) array
- marginal_ate_inference(T, X=None)[source]
Inference results for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_ate_interval(T, X=None, *, alpha=0.05)[source]
Confidence intervals for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_ate(T, X)
, type ofmarginal_ate(T, X)
)
- abstract marginal_effect(T, X=None)[source]
Calculate the heterogeneous marginal effect \(\partial\tau(T, X)\).
The marginal effect is calculated around a base treatment point conditional on a vector of features on a set of m test samples \(\{T_i, X_i\}\).
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Heterogeneous marginal effects on each outcome for each sample Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a vector)
- Return type:
(m, d_y, d_t) array
- marginal_effect_inference(T, X=None)[source]
Inference results for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_effect_interval(T, X=None, *, alpha=0.05)[source]
Confidence intervals for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_effect(T, X)
, type ofmarginal_effect(T, X)
)
- property dowhy
Get a
DoWhyWrapper
to enable functionality (e.g. causal graph, refutation test, etc.) from dowhy.- Returns:
DoWhyWrapper – An instance of
DoWhyWrapper
- Return type:
instance
- class econml._cate_estimator.DebiasedLassoCateEstimatorDiscreteMixin[source]
Bases:
LinearModelFinalCateEstimatorDiscreteMixin
Mixin for cate models where the final stage is a debiased lasso model.
- ate(X=None, *, T0, T1)
Calculate the average treatment effect \(E_X[\tau(X, T0, T1)]\).
The effect is calculated between the two treatment points and is averaged over the population of X variables.
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Average treatment effects on each outcome Note that when Y is a vector rather than a 2-dimensional array, the result will be a scalar
- Return type:
float or (d_y,) array
- ate_inference(X=None, *, T0, T1)
Inference results for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- ate_interval(X=None, *, T0, T1, alpha=0.05)
Confidence intervals for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
ate(X, T0, T1)
, type ofate(X, T0, T1))
)
- cate_feature_names(feature_names=None)
Public interface for getting feature names.
To be overriden by estimators that apply transformations the input features.
- cate_output_names(output_names=None)
Public interface for getting output names.
To be overriden by estimators that apply transformations the outputs.
- cate_treatment_names(treatment_names=None)
Public interface for getting treatment names.
To be overriden by estimators that apply transformations the treatments.
- coef_(T)
Get the coefficients in the linear model of the constant marginal treatment effect associated with treatment T.
- Parameters:
T (alphanumeric) – The input treatment for which we want the coefficients.
- Returns:
coef – Where n_x is the number of features that enter the final model (either the dimension of X or the dimension of featurizer.fit_transform(X) if the CATE estimator has a featurizer.)
- Return type:
(n_x,) or (n_y, n_x) array_like
- coef__inference(T)
Get inference results for the coefficients in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the coefficients.
- Returns:
InferenceResults – The inference of the coefficients in the final linear model
- Return type:
- coef__interval(T, *, alpha=0.05)
Get the confidence interval for the coefficients in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the coefficients.
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and upper bounds of the confidence interval for each quantity.
- Return type:
- abstract effect(X=None, *, T0, T1)
Calculate the heterogeneous treatment effect \(\tau(X, T0, T1)\).
The effect is calculated between the two treatment points conditional on a vector of features on a set of m test samples \(\{T0_i, T1_i, X_i\}\).
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Heterogeneous treatment effects on each outcome for each sample Note that when Y is a vector rather than a 2-dimensional array, the corresponding singleton dimension will be collapsed (so this method will return a vector)
- Return type:
(m, d_y) matrix
- effect_inference(X=None, *, T0=0, T1=1)
Inference results for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)
Confidence intervals for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
effect(X, T0, T1)
, type ofeffect(X, T0, T1))
)
- abstract fit(*args, inference=None, **kwargs)
Estimate the counterfactual model from data.
That is, estimates functions \(\tau(X, T0, T1)\), \(\partial \tau(T, X)\).
Note that the signature of this method may vary in subclasses (e.g. classes that don’t support instruments will not allow a Z argument)
- Parameters:
Y ((n, d_y) matrix or vector of length n) – Outcomes for each sample
T ((n, d_t) matrix or vector of length n) – Treatments for each sample
X ((n, d_x) matrix, optional) – Features for each sample
W ((n, d_w) matrix, optional) – Controls for each sample
Z ((n, d_z) matrix, optional) – Instruments for each sample
inference (str or
Inference
instance, optional) – Method for performing inference. All estimators support'bootstrap'
(or an instance ofBootstrapInference
), some support other methods as well.
- Return type:
self
- intercept_(T)
Get the intercept in the linear model of the constant marginal treatment effect associated with treatment T.
- Parameters:
T (alphanumeric) – The input treatment for which we want the intercept.
- Returns:
intercept
- Return type:
float or (n_y,) array_like
- intercept__inference(T)
Get inference results for the intercept in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the intercept.
- Returns:
InferenceResults – The inference of the intercept in the final linear model
- Return type:
- intercept__interval(T, *, alpha=0.05)
Get the intercept in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the intercept.
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and upper bounds of the confidence interval.
- Return type:
tuple(type of
intercept_(T)
, type ofintercept_(T)
)
- marginal_ate(T, X=None)
Calculate the average marginal effect \(E_{T, X}[\partial\tau(T, X)]\).
The marginal effect is calculated around a base treatment point and averaged over the population of X.
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Average marginal effects on each outcome Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will be a scalar)
- Return type:
(d_y, d_t) array
- marginal_ate_inference(T, X=None)
Inference results for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_ate_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_ate(T, X)
, type ofmarginal_ate(T, X)
)
- abstract marginal_effect(T, X=None)
Calculate the heterogeneous marginal effect \(\partial\tau(T, X)\).
The marginal effect is calculated around a base treatment point conditional on a vector of features on a set of m test samples \(\{T_i, X_i\}\).
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Heterogeneous marginal effects on each outcome for each sample Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a vector)
- Return type:
(m, d_y, d_t) array
- marginal_effect_inference(T, X=None)
Inference results for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_effect_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_effect(T, X)
, type ofmarginal_effect(T, X)
)
- summary(T, *, alpha=0.05, value=0, decimals=3, feature_names=None, treatment_names=None, output_names=None)
Get a summary of coefficient and intercept in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the summary.
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
value (float, default 0) – The mean value of the metric you’d like to test under null hypothesis.
decimals (int, default 3) – Number of decimal places to round each column to.
feature_names (list of str, optional) – The input of the feature names
treatment_names (list of str, optional) – The names of the treatments
output_names (list of str, optional) – The names of the outputs
- Returns:
smry – this holds the summary tables and text, which can be printed or converted to various output formats.
- Return type:
Summary instance
- property dowhy
Get a
DoWhyWrapper
to enable functionality (e.g. causal graph, refutation test, etc.) from dowhy.- Returns:
DoWhyWrapper – An instance of
DoWhyWrapper
- Return type:
instance
- class econml._cate_estimator.DebiasedLassoCateEstimatorMixin[source]
Bases:
LinearModelFinalCateEstimatorMixin
Mixin for cate models where the final stage is a debiased lasso model.
- ate(X=None, *, T0, T1)
Calculate the average treatment effect \(E_X[\tau(X, T0, T1)]\).
The effect is calculated between the two treatment points and is averaged over the population of X variables.
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Average treatment effects on each outcome Note that when Y is a vector rather than a 2-dimensional array, the result will be a scalar
- Return type:
float or (d_y,) array
- ate_inference(X=None, *, T0, T1)
Inference results for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- ate_interval(X=None, *, T0, T1, alpha=0.05)
Confidence intervals for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
ate(X, T0, T1)
, type ofate(X, T0, T1))
)
- cate_feature_names(feature_names=None)
Public interface for getting feature names.
To be overriden by estimators that apply transformations the input features.
- cate_output_names(output_names=None)
Public interface for getting output names.
To be overriden by estimators that apply transformations the outputs.
- cate_treatment_names(treatment_names=None)
Public interface for getting treatment names.
To be overriden by estimators that apply transformations the treatments.
- coef__inference()
Get inference information for coefficients in the linear model of the constant marginal treatment effect.
- Returns:
InferenceResults – The inference of the coefficients in the final linear model
- Return type:
- coef__interval(*, alpha=0.05)
Get the confidence interval for coefficients in the linear model of the constant marginal treatment effect.
- Parameters:
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lb, ub – The lower and upper bounds of the confidence interval for each quantity.
- Return type:
- abstract effect(X=None, *, T0, T1)
Calculate the heterogeneous treatment effect \(\tau(X, T0, T1)\).
The effect is calculated between the two treatment points conditional on a vector of features on a set of m test samples \(\{T0_i, T1_i, X_i\}\).
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Heterogeneous treatment effects on each outcome for each sample Note that when Y is a vector rather than a 2-dimensional array, the corresponding singleton dimension will be collapsed (so this method will return a vector)
- Return type:
(m, d_y) matrix
- effect_inference(X=None, *, T0=0, T1=1)
Inference results for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)
Confidence intervals for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
effect(X, T0, T1)
, type ofeffect(X, T0, T1))
)
- abstract fit(*args, inference=None, **kwargs)
Estimate the counterfactual model from data.
That is, estimates functions \(\tau(X, T0, T1)\), \(\partial \tau(T, X)\).
Note that the signature of this method may vary in subclasses (e.g. classes that don’t support instruments will not allow a Z argument)
- Parameters:
Y ((n, d_y) matrix or vector of length n) – Outcomes for each sample
T ((n, d_t) matrix or vector of length n) – Treatments for each sample
X ((n, d_x) matrix, optional) – Features for each sample
W ((n, d_w) matrix, optional) – Controls for each sample
Z ((n, d_z) matrix, optional) – Instruments for each sample
inference (str or
Inference
instance, optional) – Method for performing inference. All estimators support'bootstrap'
(or an instance ofBootstrapInference
), some support other methods as well.
- Return type:
self
- intercept__inference()
Get inference results for intercept in the linear model of the constant marginal treatment effect.
- Returns:
InferenceResults – The inference of the intercept in the final linear model
- Return type:
- intercept__interval(*, alpha=0.05)
Get the confidence interval for the intercept in the linear model of the constant marginal treatment effect.
- Parameters:
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and upper bounds of the confidence interval.
- Return type:
tuple(type of
intercept_()
, type ofintercept_()
)
- marginal_ate(T, X=None)
Calculate the average marginal effect \(E_{T, X}[\partial\tau(T, X)]\).
The marginal effect is calculated around a base treatment point and averaged over the population of X.
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Average marginal effects on each outcome Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will be a scalar)
- Return type:
(d_y, d_t) array
- marginal_ate_inference(T, X=None)
Inference results for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_ate_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_ate(T, X)
, type ofmarginal_ate(T, X)
)
- abstract marginal_effect(T, X=None)
Calculate the heterogeneous marginal effect \(\partial\tau(T, X)\).
The marginal effect is calculated around a base treatment point conditional on a vector of features on a set of m test samples \(\{T_i, X_i\}\).
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Heterogeneous marginal effects on each outcome for each sample Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a vector)
- Return type:
(m, d_y, d_t) array
- marginal_effect_inference(T, X=None)
Inference results for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_effect_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_effect(T, X)
, type ofmarginal_effect(T, X)
)
- shap_values(X, *, feature_names=None, treatment_names=None, output_names=None, background_samples=100)
Shap value for the final stage models (const_marginal_effect).
- Parameters:
X ((m, d_x) matrix) – Features for each sample. Should be in the same shape of fitted X in final stage.
feature_names (list of str of length X.shape[1], optional) – The names of input features.
treatment_names (list, optional) – The name of featurized treatment. In discrete treatment scenario, the name should not include the name of the baseline treatment (i.e. the control treatment, which by default is the alphabetically smaller)
output_names (list, optional) – The name of the outcome.
background_samples (int , default 100) – How many samples to use to compute the baseline effect. If None then all samples are used.
- Returns:
shap_outs – A nested dictionary by using each output name (e.g. ‘Y0’, ‘Y1’, … when output_names=None) and each treatment name (e.g. ‘T0’, ‘T1’, … when treatment_names=None) as key and the shap_values explanation object as value. If the input data at fit time also contain metadata, (e.g. are pandas DataFrames), then the column metatdata for the treatments, outcomes and features are used instead of the above defaults (unless the user overrides with explicitly passing the corresponding names).
- Return type:
nested dictionary of Explanation object
- summary(alpha=0.05, value=0, decimals=3, feature_names=None, treatment_names=None, output_names=None)
Get a summary of coefficient and intercept in the linear model of the constant marginal treatment effect.
- Parameters:
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
value (float, default 0) – The mean value of the metric you’d like to test under null hypothesis.
decimals (int, default 3) – Number of decimal places to round each column to.
feature_names (list of str, optional) – The input of the feature names
treatment_names (list of str, optional) – The names of the treatments
output_names (list of str, optional) – The names of the outputs
- Returns:
smry – this holds the summary tables and text, which can be printed or converted to various output formats.
- Return type:
Summary instance
- property coef_
Get the coefficients in the linear model of the constant marginal treatment effect.
- Returns:
coef – Where n_x is the number of features that enter the final model (either the dimension of X or the dimension of featurizer.fit_transform(X) if the CATE estimator has a featurizer.), n_t is the number of treatments, n_y is the number of outcomes. Dimensions are omitted if the original input was a vector and not a 2D array. For binary treatment the n_t dimension is also omitted.
- Return type:
(n_x,) or (n_t, n_x) or (n_y, n_t, n_x) array_like
- property dowhy
Get a
DoWhyWrapper
to enable functionality (e.g. causal graph, refutation test, etc.) from dowhy.- Returns:
DoWhyWrapper – An instance of
DoWhyWrapper
- Return type:
instance
- property intercept_
Get the intercept in the linear model of the constant marginal treatment effect.
- Returns:
intercept – Where n_t is the number of treatments, n_y is the number of outcomes. Dimensions are omitted if the original input was a vector and not a 2D array. For binary treatment the n_t dimension is also omitted.
- Return type:
float or (n_y,) or (n_y, n_t) array_like
- class econml._cate_estimator.ForestModelFinalCateEstimatorDiscreteMixin[source]
Bases:
BaseCateEstimator
- ate(X=None, *, T0, T1)
Calculate the average treatment effect \(E_X[\tau(X, T0, T1)]\).
The effect is calculated between the two treatment points and is averaged over the population of X variables.
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Average treatment effects on each outcome Note that when Y is a vector rather than a 2-dimensional array, the result will be a scalar
- Return type:
float or (d_y,) array
- ate_inference(X=None, *, T0, T1)
Inference results for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- ate_interval(X=None, *, T0, T1, alpha=0.05)
Confidence intervals for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
ate(X, T0, T1)
, type ofate(X, T0, T1))
)
- cate_feature_names(feature_names=None)
Public interface for getting feature names.
To be overriden by estimators that apply transformations the input features.
- cate_output_names(output_names=None)
Public interface for getting output names.
To be overriden by estimators that apply transformations the outputs.
- cate_treatment_names(treatment_names=None)
Public interface for getting treatment names.
To be overriden by estimators that apply transformations the treatments.
- abstract effect(X=None, *, T0, T1)
Calculate the heterogeneous treatment effect \(\tau(X, T0, T1)\).
The effect is calculated between the two treatment points conditional on a vector of features on a set of m test samples \(\{T0_i, T1_i, X_i\}\).
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Heterogeneous treatment effects on each outcome for each sample Note that when Y is a vector rather than a 2-dimensional array, the corresponding singleton dimension will be collapsed (so this method will return a vector)
- Return type:
(m, d_y) matrix
- effect_inference(X=None, *, T0=0, T1=1)
Inference results for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)
Confidence intervals for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
effect(X, T0, T1)
, type ofeffect(X, T0, T1))
)
- abstract fit(*args, inference=None, **kwargs)
Estimate the counterfactual model from data.
That is, estimates functions \(\tau(X, T0, T1)\), \(\partial \tau(T, X)\).
Note that the signature of this method may vary in subclasses (e.g. classes that don’t support instruments will not allow a Z argument)
- Parameters:
Y ((n, d_y) matrix or vector of length n) – Outcomes for each sample
T ((n, d_t) matrix or vector of length n) – Treatments for each sample
X ((n, d_x) matrix, optional) – Features for each sample
W ((n, d_w) matrix, optional) – Controls for each sample
Z ((n, d_z) matrix, optional) – Instruments for each sample
inference (str or
Inference
instance, optional) – Method for performing inference. All estimators support'bootstrap'
(or an instance ofBootstrapInference
), some support other methods as well.
- Return type:
self
- marginal_ate(T, X=None)
Calculate the average marginal effect \(E_{T, X}[\partial\tau(T, X)]\).
The marginal effect is calculated around a base treatment point and averaged over the population of X.
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Average marginal effects on each outcome Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will be a scalar)
- Return type:
(d_y, d_t) array
- marginal_ate_inference(T, X=None)
Inference results for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_ate_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_ate(T, X)
, type ofmarginal_ate(T, X)
)
- abstract marginal_effect(T, X=None)
Calculate the heterogeneous marginal effect \(\partial\tau(T, X)\).
The marginal effect is calculated around a base treatment point conditional on a vector of features on a set of m test samples \(\{T_i, X_i\}\).
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Heterogeneous marginal effects on each outcome for each sample Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a vector)
- Return type:
(m, d_y, d_t) array
- marginal_effect_inference(T, X=None)
Inference results for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_effect_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_effect(T, X)
, type ofmarginal_effect(T, X)
)
- property dowhy
Get a
DoWhyWrapper
to enable functionality (e.g. causal graph, refutation test, etc.) from dowhy.- Returns:
DoWhyWrapper – An instance of
DoWhyWrapper
- Return type:
instance
- class econml._cate_estimator.ForestModelFinalCateEstimatorMixin[source]
Bases:
BaseCateEstimator
- ate(X=None, *, T0, T1)
Calculate the average treatment effect \(E_X[\tau(X, T0, T1)]\).
The effect is calculated between the two treatment points and is averaged over the population of X variables.
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Average treatment effects on each outcome Note that when Y is a vector rather than a 2-dimensional array, the result will be a scalar
- Return type:
float or (d_y,) array
- ate_inference(X=None, *, T0, T1)
Inference results for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- ate_interval(X=None, *, T0, T1, alpha=0.05)
Confidence intervals for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
ate(X, T0, T1)
, type ofate(X, T0, T1))
)
- cate_feature_names(feature_names=None)
Public interface for getting feature names.
To be overriden by estimators that apply transformations the input features.
- cate_output_names(output_names=None)
Public interface for getting output names.
To be overriden by estimators that apply transformations the outputs.
- cate_treatment_names(treatment_names=None)
Public interface for getting treatment names.
To be overriden by estimators that apply transformations the treatments.
- abstract effect(X=None, *, T0, T1)
Calculate the heterogeneous treatment effect \(\tau(X, T0, T1)\).
The effect is calculated between the two treatment points conditional on a vector of features on a set of m test samples \(\{T0_i, T1_i, X_i\}\).
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Heterogeneous treatment effects on each outcome for each sample Note that when Y is a vector rather than a 2-dimensional array, the corresponding singleton dimension will be collapsed (so this method will return a vector)
- Return type:
(m, d_y) matrix
- effect_inference(X=None, *, T0=0, T1=1)
Inference results for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)
Confidence intervals for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
effect(X, T0, T1)
, type ofeffect(X, T0, T1))
)
- abstract fit(*args, inference=None, **kwargs)
Estimate the counterfactual model from data.
That is, estimates functions \(\tau(X, T0, T1)\), \(\partial \tau(T, X)\).
Note that the signature of this method may vary in subclasses (e.g. classes that don’t support instruments will not allow a Z argument)
- Parameters:
Y ((n, d_y) matrix or vector of length n) – Outcomes for each sample
T ((n, d_t) matrix or vector of length n) – Treatments for each sample
X ((n, d_x) matrix, optional) – Features for each sample
W ((n, d_w) matrix, optional) – Controls for each sample
Z ((n, d_z) matrix, optional) – Instruments for each sample
inference (str or
Inference
instance, optional) – Method for performing inference. All estimators support'bootstrap'
(or an instance ofBootstrapInference
), some support other methods as well.
- Return type:
self
- marginal_ate(T, X=None)
Calculate the average marginal effect \(E_{T, X}[\partial\tau(T, X)]\).
The marginal effect is calculated around a base treatment point and averaged over the population of X.
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Average marginal effects on each outcome Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will be a scalar)
- Return type:
(d_y, d_t) array
- marginal_ate_inference(T, X=None)
Inference results for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_ate_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_ate(T, X)
, type ofmarginal_ate(T, X)
)
- abstract marginal_effect(T, X=None)
Calculate the heterogeneous marginal effect \(\partial\tau(T, X)\).
The marginal effect is calculated around a base treatment point conditional on a vector of features on a set of m test samples \(\{T_i, X_i\}\).
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Heterogeneous marginal effects on each outcome for each sample Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a vector)
- Return type:
(m, d_y, d_t) array
- marginal_effect_inference(T, X=None)
Inference results for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_effect_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_effect(T, X)
, type ofmarginal_effect(T, X)
)
- property dowhy
Get a
DoWhyWrapper
to enable functionality (e.g. causal graph, refutation test, etc.) from dowhy.- Returns:
DoWhyWrapper – An instance of
DoWhyWrapper
- Return type:
instance
- class econml._cate_estimator.LinearCateEstimator[source]
Bases:
BaseCateEstimator
Base class for CATE estimators in this package where the outcome is linear given some treatment featurization.
- ate(X=None, *, T0, T1)
Calculate the average treatment effect \(E_X[\tau(X, T0, T1)]\).
The effect is calculated between the two treatment points and is averaged over the population of X variables.
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Average treatment effects on each outcome Note that when Y is a vector rather than a 2-dimensional array, the result will be a scalar
- Return type:
float or (d_y,) array
- ate_inference(X=None, *, T0, T1)
Inference results for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- ate_interval(X=None, *, T0, T1, alpha=0.05)
Confidence intervals for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
ate(X, T0, T1)
, type ofate(X, T0, T1))
)
- cate_feature_names(feature_names=None)
Public interface for getting feature names.
To be overriden by estimators that apply transformations the input features.
- cate_output_names(output_names=None)
Public interface for getting output names.
To be overriden by estimators that apply transformations the outputs.
- cate_treatment_names(treatment_names=None)
Public interface for getting treatment names.
To be overriden by estimators that apply transformations the treatments.
- const_marginal_ate(X=None)[source]
Calculate the average constant marginal CATE \(E_X[\theta(X)]\).
- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample.
- Returns:
theta – Average constant marginal CATE of each treatment on each outcome. Note that when Y or featurized-T (or T if treatment_featurizer is None) is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a scalar)
- Return type:
(d_y, d_f_t) matrix where d_f_t is the dimension of the featurized treatment. If treatment_featurizer is None, d_f_t = d_t.
- const_marginal_ate_inference(X=None)[source]
Inference results for the quantities \(E_X[\theta(X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- const_marginal_ate_interval(X=None, *, alpha=0.05)[source]
Confidence intervals for the quantities \(E_X[\theta(X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
const_marginal_ate(X)
, type ofconst_marginal_ate(X)
)
- abstract const_marginal_effect(X=None)[source]
Calculate the constant marginal CATE \(\theta(·)\).
The marginal effect is conditional on a vector of features on a set of m test samples X[i].
- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample.
- Returns:
theta – Constant marginal CATE of each featurized treatment on each outcome for each sample X[i]. Note that when Y or featurized-T (or T if treatment_featurizer is None) is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a vector)
- Return type:
(m, d_y, d_f_t) matrix or (d_y, d_f_t) matrix if X is None where d_f_t is the dimension of the featurized treatment. If treatment_featurizer is None, d_f_t = d_t.
- const_marginal_effect_inference(X=None)[source]
Inference results for the quantities \(\theta(X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- const_marginal_effect_interval(X=None, *, alpha=0.05)[source]
Confidence intervals for the quantities \(\theta(X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
const_marginal_effect(X)
, type ofconst_marginal_effect(X)
)
- effect(X=None, *, T0, T1)[source]
Calculate the heterogeneous treatment effect \(\tau(X, T0, T1)\).
The effect is calculated between the two treatment points conditional on a vector of features on a set of m test samples \(\{T0_i, T1_i, X_i\}\). Since this class assumes a linear effect, only the difference between T0ᵢ and T1ᵢ matters for this computation.
- Parameters:
T0 ((m, d_t) matrix) – Base treatments for each sample
T1 ((m, d_t) matrix) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
effect – Heterogeneous treatment effects on each outcome for each sample. Note that when Y is a vector rather than a 2-dimensional array, the corresponding singleton dimension will be collapsed (so this method will return a vector)
- Return type:
(m, d_y) matrix (or length m vector if Y was a vector)
- effect_inference(X=None, *, T0=0, T1=1)
Inference results for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)
Confidence intervals for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
effect(X, T0, T1)
, type ofeffect(X, T0, T1))
)
- abstract fit(*args, inference=None, **kwargs)
Estimate the counterfactual model from data.
That is, estimates functions \(\tau(X, T0, T1)\), \(\partial \tau(T, X)\).
Note that the signature of this method may vary in subclasses (e.g. classes that don’t support instruments will not allow a Z argument)
- Parameters:
Y ((n, d_y) matrix or vector of length n) – Outcomes for each sample
T ((n, d_t) matrix or vector of length n) – Treatments for each sample
X ((n, d_x) matrix, optional) – Features for each sample
W ((n, d_w) matrix, optional) – Controls for each sample
Z ((n, d_z) matrix, optional) – Instruments for each sample
inference (str or
Inference
instance, optional) – Method for performing inference. All estimators support'bootstrap'
(or an instance ofBootstrapInference
), some support other methods as well.
- Return type:
self
- marginal_ate(T, X=None)[source]
Calculate the average marginal effect \(E_{T, X}[\partial\tau(T, X)]\).
The marginal effect is calculated around a base treatment point and averaged over the population of X.
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Average marginal effects on each outcome Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will be a scalar)
- Return type:
(d_y, d_t) array
- marginal_ate_inference(T, X=None)[source]
Inference results for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_ate_interval(T, X=None, *, alpha=0.05)[source]
Confidence intervals for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_ate(T, X)
, type ofmarginal_ate(T, X)
)
- marginal_effect(T, X=None)[source]
Calculate the heterogeneous marginal effect \(\partial\tau(T, X)\).
The marginal effect is calculated around a base treatment point conditional on a vector of features on a set of m test samples \(\{T_i, X_i\}\). If treatment_featurizer is None, the base treatment is ignored in this calculation and the result is equivalent to const_marginal_effect.
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Heterogeneous marginal effects on each outcome for each sample Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a vector)
- Return type:
(m, d_y, d_t) array
- marginal_effect_inference(T, X=None)[source]
Inference results for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_effect_interval(T, X=None, *, alpha=0.05)[source]
Confidence intervals for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_effect(T, X)
, type ofmarginal_effect(T, X)
)
- shap_values(X, *, feature_names=None, treatment_names=None, output_names=None, background_samples=100)[source]
Shap value for the final stage models (const_marginal_effect).
- Parameters:
X ((m, d_x) matrix) – Features for each sample. Should be in the same shape of fitted X in final stage.
feature_names (list of str of length X.shape[1], optional) – The names of input features.
treatment_names (list, optional) – The name of featurized treatment. In discrete treatment scenario, the name should not include the name of the baseline treatment (i.e. the control treatment, which by default is the alphabetically smaller)
output_names (list, optional) – The name of the outcome.
background_samples (int , default 100) – How many samples to use to compute the baseline effect. If None then all samples are used.
- Returns:
shap_outs – A nested dictionary by using each output name (e.g. ‘Y0’, ‘Y1’, … when output_names=None) and each treatment name (e.g. ‘T0’, ‘T1’, … when treatment_names=None) as key and the shap_values explanation object as value. If the input data at fit time also contain metadata, (e.g. are pandas DataFrames), then the column metatdata for the treatments, outcomes and features are used instead of the above defaults (unless the user overrides with explicitly passing the corresponding names).
- Return type:
nested dictionary of Explanation object
- property dowhy
Get a
DoWhyWrapper
to enable functionality (e.g. causal graph, refutation test, etc.) from dowhy.- Returns:
DoWhyWrapper – An instance of
DoWhyWrapper
- Return type:
instance
- class econml._cate_estimator.LinearModelFinalCateEstimatorDiscreteMixin[source]
Bases:
BaseCateEstimator
Base class for models where the final stage is a linear model.
Subclasses must expose a
fitted_models_final
attribute returning an array of the fitted models for each non-control treatment- ate(X=None, *, T0, T1)
Calculate the average treatment effect \(E_X[\tau(X, T0, T1)]\).
The effect is calculated between the two treatment points and is averaged over the population of X variables.
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Average treatment effects on each outcome Note that when Y is a vector rather than a 2-dimensional array, the result will be a scalar
- Return type:
float or (d_y,) array
- ate_inference(X=None, *, T0, T1)
Inference results for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- ate_interval(X=None, *, T0, T1, alpha=0.05)
Confidence intervals for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
ate(X, T0, T1)
, type ofate(X, T0, T1))
)
- cate_feature_names(feature_names=None)
Public interface for getting feature names.
To be overriden by estimators that apply transformations the input features.
- cate_output_names(output_names=None)
Public interface for getting output names.
To be overriden by estimators that apply transformations the outputs.
- cate_treatment_names(treatment_names=None)
Public interface for getting treatment names.
To be overriden by estimators that apply transformations the treatments.
- coef_(T)[source]
Get the coefficients in the linear model of the constant marginal treatment effect associated with treatment T.
- Parameters:
T (alphanumeric) – The input treatment for which we want the coefficients.
- Returns:
coef – Where n_x is the number of features that enter the final model (either the dimension of X or the dimension of featurizer.fit_transform(X) if the CATE estimator has a featurizer.)
- Return type:
(n_x,) or (n_y, n_x) array_like
- coef__inference(T)[source]
Get inference results for the coefficients in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the coefficients.
- Returns:
InferenceResults – The inference of the coefficients in the final linear model
- Return type:
- coef__interval(T, *, alpha=0.05)[source]
Get the confidence interval for the coefficients in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the coefficients.
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and upper bounds of the confidence interval for each quantity.
- Return type:
- abstract effect(X=None, *, T0, T1)
Calculate the heterogeneous treatment effect \(\tau(X, T0, T1)\).
The effect is calculated between the two treatment points conditional on a vector of features on a set of m test samples \(\{T0_i, T1_i, X_i\}\).
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Heterogeneous treatment effects on each outcome for each sample Note that when Y is a vector rather than a 2-dimensional array, the corresponding singleton dimension will be collapsed (so this method will return a vector)
- Return type:
(m, d_y) matrix
- effect_inference(X=None, *, T0=0, T1=1)
Inference results for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)
Confidence intervals for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
effect(X, T0, T1)
, type ofeffect(X, T0, T1))
)
- abstract fit(*args, inference=None, **kwargs)
Estimate the counterfactual model from data.
That is, estimates functions \(\tau(X, T0, T1)\), \(\partial \tau(T, X)\).
Note that the signature of this method may vary in subclasses (e.g. classes that don’t support instruments will not allow a Z argument)
- Parameters:
Y ((n, d_y) matrix or vector of length n) – Outcomes for each sample
T ((n, d_t) matrix or vector of length n) – Treatments for each sample
X ((n, d_x) matrix, optional) – Features for each sample
W ((n, d_w) matrix, optional) – Controls for each sample
Z ((n, d_z) matrix, optional) – Instruments for each sample
inference (str or
Inference
instance, optional) – Method for performing inference. All estimators support'bootstrap'
(or an instance ofBootstrapInference
), some support other methods as well.
- Return type:
self
- intercept_(T)[source]
Get the intercept in the linear model of the constant marginal treatment effect associated with treatment T.
- Parameters:
T (alphanumeric) – The input treatment for which we want the intercept.
- Returns:
intercept
- Return type:
float or (n_y,) array_like
- intercept__inference(T)[source]
Get inference results for the intercept in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the intercept.
- Returns:
InferenceResults – The inference of the intercept in the final linear model
- Return type:
- intercept__interval(T, *, alpha=0.05)[source]
Get the intercept in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the intercept.
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and upper bounds of the confidence interval.
- Return type:
tuple(type of
intercept_(T)
, type ofintercept_(T)
)
- marginal_ate(T, X=None)
Calculate the average marginal effect \(E_{T, X}[\partial\tau(T, X)]\).
The marginal effect is calculated around a base treatment point and averaged over the population of X.
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Average marginal effects on each outcome Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will be a scalar)
- Return type:
(d_y, d_t) array
- marginal_ate_inference(T, X=None)
Inference results for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_ate_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_ate(T, X)
, type ofmarginal_ate(T, X)
)
- abstract marginal_effect(T, X=None)
Calculate the heterogeneous marginal effect \(\partial\tau(T, X)\).
The marginal effect is calculated around a base treatment point conditional on a vector of features on a set of m test samples \(\{T_i, X_i\}\).
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Heterogeneous marginal effects on each outcome for each sample Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a vector)
- Return type:
(m, d_y, d_t) array
- marginal_effect_inference(T, X=None)
Inference results for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_effect_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_effect(T, X)
, type ofmarginal_effect(T, X)
)
- summary(T, *, alpha=0.05, value=0, decimals=3, feature_names=None, treatment_names=None, output_names=None)[source]
Get a summary of coefficient and intercept in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the summary.
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
value (float, default 0) – The mean value of the metric you’d like to test under null hypothesis.
decimals (int, default 3) – Number of decimal places to round each column to.
feature_names (list of str, optional) – The input of the feature names
treatment_names (list of str, optional) – The names of the treatments
output_names (list of str, optional) – The names of the outputs
- Returns:
smry – this holds the summary tables and text, which can be printed or converted to various output formats.
- Return type:
Summary instance
- property dowhy
Get a
DoWhyWrapper
to enable functionality (e.g. causal graph, refutation test, etc.) from dowhy.- Returns:
DoWhyWrapper – An instance of
DoWhyWrapper
- Return type:
instance
- class econml._cate_estimator.LinearModelFinalCateEstimatorMixin[source]
Bases:
BaseCateEstimator
Base class for models where the final stage is a linear model.
Such an estimator must implement a
model_final_
attribute that points to the fitted finalStatsModelsLinearRegression
object that represents the fitted CATE model. Also must implementfeaturizer_
that points to the fitted featurizer andbias_part_of_coef
that designates if the intercept is the first element of themodel_final_
coefficient.- bias_part_of_coef
Whether the CATE model’s intercept is contained in the final model’s
coef_
rather than as a separateintercept_
- Type:
- ate(X=None, *, T0, T1)
Calculate the average treatment effect \(E_X[\tau(X, T0, T1)]\).
The effect is calculated between the two treatment points and is averaged over the population of X variables.
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Average treatment effects on each outcome Note that when Y is a vector rather than a 2-dimensional array, the result will be a scalar
- Return type:
float or (d_y,) array
- ate_inference(X=None, *, T0, T1)
Inference results for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- ate_interval(X=None, *, T0, T1, alpha=0.05)
Confidence intervals for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
ate(X, T0, T1)
, type ofate(X, T0, T1))
)
- cate_feature_names(feature_names=None)
Public interface for getting feature names.
To be overriden by estimators that apply transformations the input features.
- cate_output_names(output_names=None)
Public interface for getting output names.
To be overriden by estimators that apply transformations the outputs.
- cate_treatment_names(treatment_names=None)
Public interface for getting treatment names.
To be overriden by estimators that apply transformations the treatments.
- coef__inference()[source]
Get inference information for coefficients in the linear model of the constant marginal treatment effect.
- Returns:
InferenceResults – The inference of the coefficients in the final linear model
- Return type:
- coef__interval(*, alpha=0.05)[source]
Get the confidence interval for coefficients in the linear model of the constant marginal treatment effect.
- Parameters:
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lb, ub – The lower and upper bounds of the confidence interval for each quantity.
- Return type:
- abstract effect(X=None, *, T0, T1)
Calculate the heterogeneous treatment effect \(\tau(X, T0, T1)\).
The effect is calculated between the two treatment points conditional on a vector of features on a set of m test samples \(\{T0_i, T1_i, X_i\}\).
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Heterogeneous treatment effects on each outcome for each sample Note that when Y is a vector rather than a 2-dimensional array, the corresponding singleton dimension will be collapsed (so this method will return a vector)
- Return type:
(m, d_y) matrix
- effect_inference(X=None, *, T0=0, T1=1)
Inference results for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)
Confidence intervals for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
effect(X, T0, T1)
, type ofeffect(X, T0, T1))
)
- abstract fit(*args, inference=None, **kwargs)
Estimate the counterfactual model from data.
That is, estimates functions \(\tau(X, T0, T1)\), \(\partial \tau(T, X)\).
Note that the signature of this method may vary in subclasses (e.g. classes that don’t support instruments will not allow a Z argument)
- Parameters:
Y ((n, d_y) matrix or vector of length n) – Outcomes for each sample
T ((n, d_t) matrix or vector of length n) – Treatments for each sample
X ((n, d_x) matrix, optional) – Features for each sample
W ((n, d_w) matrix, optional) – Controls for each sample
Z ((n, d_z) matrix, optional) – Instruments for each sample
inference (str or
Inference
instance, optional) – Method for performing inference. All estimators support'bootstrap'
(or an instance ofBootstrapInference
), some support other methods as well.
- Return type:
self
- intercept__inference()[source]
Get inference results for intercept in the linear model of the constant marginal treatment effect.
- Returns:
InferenceResults – The inference of the intercept in the final linear model
- Return type:
- intercept__interval(*, alpha=0.05)[source]
Get the confidence interval for the intercept in the linear model of the constant marginal treatment effect.
- Parameters:
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and upper bounds of the confidence interval.
- Return type:
tuple(type of
intercept_()
, type ofintercept_()
)
- marginal_ate(T, X=None)
Calculate the average marginal effect \(E_{T, X}[\partial\tau(T, X)]\).
The marginal effect is calculated around a base treatment point and averaged over the population of X.
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Average marginal effects on each outcome Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will be a scalar)
- Return type:
(d_y, d_t) array
- marginal_ate_inference(T, X=None)
Inference results for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_ate_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_ate(T, X)
, type ofmarginal_ate(T, X)
)
- abstract marginal_effect(T, X=None)
Calculate the heterogeneous marginal effect \(\partial\tau(T, X)\).
The marginal effect is calculated around a base treatment point conditional on a vector of features on a set of m test samples \(\{T_i, X_i\}\).
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Heterogeneous marginal effects on each outcome for each sample Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a vector)
- Return type:
(m, d_y, d_t) array
- marginal_effect_inference(T, X=None)
Inference results for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_effect_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_effect(T, X)
, type ofmarginal_effect(T, X)
)
- shap_values(X, *, feature_names=None, treatment_names=None, output_names=None, background_samples=100)[source]
Shap value for the final stage models (const_marginal_effect).
- Parameters:
X ((m, d_x) matrix) – Features for each sample. Should be in the same shape of fitted X in final stage.
feature_names (list of str of length X.shape[1], optional) – The names of input features.
treatment_names (list, optional) – The name of featurized treatment. In discrete treatment scenario, the name should not include the name of the baseline treatment (i.e. the control treatment, which by default is the alphabetically smaller)
output_names (list, optional) – The name of the outcome.
background_samples (int , default 100) – How many samples to use to compute the baseline effect. If None then all samples are used.
- Returns:
shap_outs – A nested dictionary by using each output name (e.g. ‘Y0’, ‘Y1’, … when output_names=None) and each treatment name (e.g. ‘T0’, ‘T1’, … when treatment_names=None) as key and the shap_values explanation object as value. If the input data at fit time also contain metadata, (e.g. are pandas DataFrames), then the column metatdata for the treatments, outcomes and features are used instead of the above defaults (unless the user overrides with explicitly passing the corresponding names).
- Return type:
nested dictionary of Explanation object
- summary(alpha=0.05, value=0, decimals=3, feature_names=None, treatment_names=None, output_names=None)[source]
Get a summary of coefficient and intercept in the linear model of the constant marginal treatment effect.
- Parameters:
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
value (float, default 0) – The mean value of the metric you’d like to test under null hypothesis.
decimals (int, default 3) – Number of decimal places to round each column to.
feature_names (list of str, optional) – The input of the feature names
treatment_names (list of str, optional) – The names of the treatments
output_names (list of str, optional) – The names of the outputs
- Returns:
smry – this holds the summary tables and text, which can be printed or converted to various output formats.
- Return type:
Summary instance
- property coef_
Get the coefficients in the linear model of the constant marginal treatment effect.
- Returns:
coef – Where n_x is the number of features that enter the final model (either the dimension of X or the dimension of featurizer.fit_transform(X) if the CATE estimator has a featurizer.), n_t is the number of treatments, n_y is the number of outcomes. Dimensions are omitted if the original input was a vector and not a 2D array. For binary treatment the n_t dimension is also omitted.
- Return type:
(n_x,) or (n_t, n_x) or (n_y, n_t, n_x) array_like
- property dowhy
Get a
DoWhyWrapper
to enable functionality (e.g. causal graph, refutation test, etc.) from dowhy.- Returns:
DoWhyWrapper – An instance of
DoWhyWrapper
- Return type:
instance
- property intercept_
Get the intercept in the linear model of the constant marginal treatment effect.
- Returns:
intercept – Where n_t is the number of treatments, n_y is the number of outcomes. Dimensions are omitted if the original input was a vector and not a 2D array. For binary treatment the n_t dimension is also omitted.
- Return type:
float or (n_y,) or (n_y, n_t) array_like
- class econml._cate_estimator.StatsModelsCateEstimatorDiscreteMixin[source]
Bases:
LinearModelFinalCateEstimatorDiscreteMixin
Mixin class that offers inference=’statsmodels’ options to the CATE estimator that inherits it.
Such an estimator must implement a
model_final_
attribute that points to aStatsModelsLinearRegression
object that is cloned to fit each discrete treatment target CATE model and afitted_models_final
attribute that returns the list of fitted final models that represent the CATE for each categorical treatment.- ate(X=None, *, T0, T1)
Calculate the average treatment effect \(E_X[\tau(X, T0, T1)]\).
The effect is calculated between the two treatment points and is averaged over the population of X variables.
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Average treatment effects on each outcome Note that when Y is a vector rather than a 2-dimensional array, the result will be a scalar
- Return type:
float or (d_y,) array
- ate_inference(X=None, *, T0, T1)
Inference results for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- ate_interval(X=None, *, T0, T1, alpha=0.05)
Confidence intervals for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
ate(X, T0, T1)
, type ofate(X, T0, T1))
)
- cate_feature_names(feature_names=None)
Public interface for getting feature names.
To be overriden by estimators that apply transformations the input features.
- cate_output_names(output_names=None)
Public interface for getting output names.
To be overriden by estimators that apply transformations the outputs.
- cate_treatment_names(treatment_names=None)
Public interface for getting treatment names.
To be overriden by estimators that apply transformations the treatments.
- coef_(T)
Get the coefficients in the linear model of the constant marginal treatment effect associated with treatment T.
- Parameters:
T (alphanumeric) – The input treatment for which we want the coefficients.
- Returns:
coef – Where n_x is the number of features that enter the final model (either the dimension of X or the dimension of featurizer.fit_transform(X) if the CATE estimator has a featurizer.)
- Return type:
(n_x,) or (n_y, n_x) array_like
- coef__inference(T)
Get inference results for the coefficients in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the coefficients.
- Returns:
InferenceResults – The inference of the coefficients in the final linear model
- Return type:
- coef__interval(T, *, alpha=0.05)
Get the confidence interval for the coefficients in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the coefficients.
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and upper bounds of the confidence interval for each quantity.
- Return type:
- abstract effect(X=None, *, T0, T1)
Calculate the heterogeneous treatment effect \(\tau(X, T0, T1)\).
The effect is calculated between the two treatment points conditional on a vector of features on a set of m test samples \(\{T0_i, T1_i, X_i\}\).
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Heterogeneous treatment effects on each outcome for each sample Note that when Y is a vector rather than a 2-dimensional array, the corresponding singleton dimension will be collapsed (so this method will return a vector)
- Return type:
(m, d_y) matrix
- effect_inference(X=None, *, T0=0, T1=1)
Inference results for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)
Confidence intervals for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
effect(X, T0, T1)
, type ofeffect(X, T0, T1))
)
- abstract fit(*args, inference=None, **kwargs)
Estimate the counterfactual model from data.
That is, estimates functions \(\tau(X, T0, T1)\), \(\partial \tau(T, X)\).
Note that the signature of this method may vary in subclasses (e.g. classes that don’t support instruments will not allow a Z argument)
- Parameters:
Y ((n, d_y) matrix or vector of length n) – Outcomes for each sample
T ((n, d_t) matrix or vector of length n) – Treatments for each sample
X ((n, d_x) matrix, optional) – Features for each sample
W ((n, d_w) matrix, optional) – Controls for each sample
Z ((n, d_z) matrix, optional) – Instruments for each sample
inference (str or
Inference
instance, optional) – Method for performing inference. All estimators support'bootstrap'
(or an instance ofBootstrapInference
), some support other methods as well.
- Return type:
self
- intercept_(T)
Get the intercept in the linear model of the constant marginal treatment effect associated with treatment T.
- Parameters:
T (alphanumeric) – The input treatment for which we want the intercept.
- Returns:
intercept
- Return type:
float or (n_y,) array_like
- intercept__inference(T)
Get inference results for the intercept in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the intercept.
- Returns:
InferenceResults – The inference of the intercept in the final linear model
- Return type:
- intercept__interval(T, *, alpha=0.05)
Get the intercept in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the intercept.
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and upper bounds of the confidence interval.
- Return type:
tuple(type of
intercept_(T)
, type ofintercept_(T)
)
- marginal_ate(T, X=None)
Calculate the average marginal effect \(E_{T, X}[\partial\tau(T, X)]\).
The marginal effect is calculated around a base treatment point and averaged over the population of X.
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Average marginal effects on each outcome Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will be a scalar)
- Return type:
(d_y, d_t) array
- marginal_ate_inference(T, X=None)
Inference results for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_ate_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_ate(T, X)
, type ofmarginal_ate(T, X)
)
- abstract marginal_effect(T, X=None)
Calculate the heterogeneous marginal effect \(\partial\tau(T, X)\).
The marginal effect is calculated around a base treatment point conditional on a vector of features on a set of m test samples \(\{T_i, X_i\}\).
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Heterogeneous marginal effects on each outcome for each sample Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a vector)
- Return type:
(m, d_y, d_t) array
- marginal_effect_inference(T, X=None)
Inference results for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_effect_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_effect(T, X)
, type ofmarginal_effect(T, X)
)
- summary(T, *, alpha=0.05, value=0, decimals=3, feature_names=None, treatment_names=None, output_names=None)
Get a summary of coefficient and intercept in the linear model of the constant marginal treatment effect.
- Parameters:
T (alphanumeric) – The input treatment for which we want the summary.
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
value (float, default 0) – The mean value of the metric you’d like to test under null hypothesis.
decimals (int, default 3) – Number of decimal places to round each column to.
feature_names (list of str, optional) – The input of the feature names
treatment_names (list of str, optional) – The names of the treatments
output_names (list of str, optional) – The names of the outputs
- Returns:
smry – this holds the summary tables and text, which can be printed or converted to various output formats.
- Return type:
Summary instance
- property dowhy
Get a
DoWhyWrapper
to enable functionality (e.g. causal graph, refutation test, etc.) from dowhy.- Returns:
DoWhyWrapper – An instance of
DoWhyWrapper
- Return type:
instance
- class econml._cate_estimator.StatsModelsCateEstimatorMixin[source]
Bases:
LinearModelFinalCateEstimatorMixin
Mixin class that offers inference=’statsmodels’ options to the CATE estimator that inherits it.
Such an estimator must implement a
model_final_
attribute that points to the fitted finalStatsModelsLinearRegression
object that represents the fitted CATE model. Also must implementfeaturizer_
that points to the fitted featurizer andbias_part_of_coef
that designates if the intercept is the first element of themodel_final_
coefficient.- ate(X=None, *, T0, T1)
Calculate the average treatment effect \(E_X[\tau(X, T0, T1)]\).
The effect is calculated between the two treatment points and is averaged over the population of X variables.
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Average treatment effects on each outcome Note that when Y is a vector rather than a 2-dimensional array, the result will be a scalar
- Return type:
float or (d_y,) array
- ate_inference(X=None, *, T0, T1)
Inference results for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- ate_interval(X=None, *, T0, T1, alpha=0.05)
Confidence intervals for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
ate(X, T0, T1)
, type ofate(X, T0, T1))
)
- cate_feature_names(feature_names=None)
Public interface for getting feature names.
To be overriden by estimators that apply transformations the input features.
- cate_output_names(output_names=None)
Public interface for getting output names.
To be overriden by estimators that apply transformations the outputs.
- cate_treatment_names(treatment_names=None)
Public interface for getting treatment names.
To be overriden by estimators that apply transformations the treatments.
- coef__inference()
Get inference information for coefficients in the linear model of the constant marginal treatment effect.
- Returns:
InferenceResults – The inference of the coefficients in the final linear model
- Return type:
- coef__interval(*, alpha=0.05)
Get the confidence interval for coefficients in the linear model of the constant marginal treatment effect.
- Parameters:
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lb, ub – The lower and upper bounds of the confidence interval for each quantity.
- Return type:
- abstract effect(X=None, *, T0, T1)
Calculate the heterogeneous treatment effect \(\tau(X, T0, T1)\).
The effect is calculated between the two treatment points conditional on a vector of features on a set of m test samples \(\{T0_i, T1_i, X_i\}\).
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Heterogeneous treatment effects on each outcome for each sample Note that when Y is a vector rather than a 2-dimensional array, the corresponding singleton dimension will be collapsed (so this method will return a vector)
- Return type:
(m, d_y) matrix
- effect_inference(X=None, *, T0=0, T1=1)
Inference results for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)
Confidence intervals for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
effect(X, T0, T1)
, type ofeffect(X, T0, T1))
)
- abstract fit(*args, inference=None, **kwargs)
Estimate the counterfactual model from data.
That is, estimates functions \(\tau(X, T0, T1)\), \(\partial \tau(T, X)\).
Note that the signature of this method may vary in subclasses (e.g. classes that don’t support instruments will not allow a Z argument)
- Parameters:
Y ((n, d_y) matrix or vector of length n) – Outcomes for each sample
T ((n, d_t) matrix or vector of length n) – Treatments for each sample
X ((n, d_x) matrix, optional) – Features for each sample
W ((n, d_w) matrix, optional) – Controls for each sample
Z ((n, d_z) matrix, optional) – Instruments for each sample
inference (str or
Inference
instance, optional) – Method for performing inference. All estimators support'bootstrap'
(or an instance ofBootstrapInference
), some support other methods as well.
- Return type:
self
- intercept__inference()
Get inference results for intercept in the linear model of the constant marginal treatment effect.
- Returns:
InferenceResults – The inference of the intercept in the final linear model
- Return type:
- intercept__interval(*, alpha=0.05)
Get the confidence interval for the intercept in the linear model of the constant marginal treatment effect.
- Parameters:
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and upper bounds of the confidence interval.
- Return type:
tuple(type of
intercept_()
, type ofintercept_()
)
- marginal_ate(T, X=None)
Calculate the average marginal effect \(E_{T, X}[\partial\tau(T, X)]\).
The marginal effect is calculated around a base treatment point and averaged over the population of X.
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Average marginal effects on each outcome Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will be a scalar)
- Return type:
(d_y, d_t) array
- marginal_ate_inference(T, X=None)
Inference results for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_ate_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_ate(T, X)
, type ofmarginal_ate(T, X)
)
- abstract marginal_effect(T, X=None)
Calculate the heterogeneous marginal effect \(\partial\tau(T, X)\).
The marginal effect is calculated around a base treatment point conditional on a vector of features on a set of m test samples \(\{T_i, X_i\}\).
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Heterogeneous marginal effects on each outcome for each sample Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a vector)
- Return type:
(m, d_y, d_t) array
- marginal_effect_inference(T, X=None)
Inference results for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_effect_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_effect(T, X)
, type ofmarginal_effect(T, X)
)
- shap_values(X, *, feature_names=None, treatment_names=None, output_names=None, background_samples=100)
Shap value for the final stage models (const_marginal_effect).
- Parameters:
X ((m, d_x) matrix) – Features for each sample. Should be in the same shape of fitted X in final stage.
feature_names (list of str of length X.shape[1], optional) – The names of input features.
treatment_names (list, optional) – The name of featurized treatment. In discrete treatment scenario, the name should not include the name of the baseline treatment (i.e. the control treatment, which by default is the alphabetically smaller)
output_names (list, optional) – The name of the outcome.
background_samples (int , default 100) – How many samples to use to compute the baseline effect. If None then all samples are used.
- Returns:
shap_outs – A nested dictionary by using each output name (e.g. ‘Y0’, ‘Y1’, … when output_names=None) and each treatment name (e.g. ‘T0’, ‘T1’, … when treatment_names=None) as key and the shap_values explanation object as value. If the input data at fit time also contain metadata, (e.g. are pandas DataFrames), then the column metatdata for the treatments, outcomes and features are used instead of the above defaults (unless the user overrides with explicitly passing the corresponding names).
- Return type:
nested dictionary of Explanation object
- summary(alpha=0.05, value=0, decimals=3, feature_names=None, treatment_names=None, output_names=None)
Get a summary of coefficient and intercept in the linear model of the constant marginal treatment effect.
- Parameters:
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
value (float, default 0) – The mean value of the metric you’d like to test under null hypothesis.
decimals (int, default 3) – Number of decimal places to round each column to.
feature_names (list of str, optional) – The input of the feature names
treatment_names (list of str, optional) – The names of the treatments
output_names (list of str, optional) – The names of the outputs
- Returns:
smry – this holds the summary tables and text, which can be printed or converted to various output formats.
- Return type:
Summary instance
- property coef_
Get the coefficients in the linear model of the constant marginal treatment effect.
- Returns:
coef – Where n_x is the number of features that enter the final model (either the dimension of X or the dimension of featurizer.fit_transform(X) if the CATE estimator has a featurizer.), n_t is the number of treatments, n_y is the number of outcomes. Dimensions are omitted if the original input was a vector and not a 2D array. For binary treatment the n_t dimension is also omitted.
- Return type:
(n_x,) or (n_t, n_x) or (n_y, n_t, n_x) array_like
- property dowhy
Get a
DoWhyWrapper
to enable functionality (e.g. causal graph, refutation test, etc.) from dowhy.- Returns:
DoWhyWrapper – An instance of
DoWhyWrapper
- Return type:
instance
- property intercept_
Get the intercept in the linear model of the constant marginal treatment effect.
- Returns:
intercept – Where n_t is the number of treatments, n_y is the number of outcomes. Dimensions are omitted if the original input was a vector and not a 2D array. For binary treatment the n_t dimension is also omitted.
- Return type:
float or (n_y,) or (n_y, n_t) array_like
- class econml._cate_estimator.TreatmentExpansionMixin[source]
Bases:
BaseCateEstimator
Mixin which automatically handles promotions of scalar treatments to the appropriate shape.
Also applies treatment featurization for discrete treatments and user-specified treatment transformers.
- ate(X=None, *, T0=0, T1=1)[source]
Calculate the average treatment effect \(E_X[\tau(X, T0, T1)]\).
The effect is calculated between the two treatment points and is averaged over the population of X variables.
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Average treatment effects on each outcome Note that when Y is a vector rather than a 2-dimensional array, the result will be a scalar
- Return type:
float or (d_y,) array
- ate_inference(X=None, *, T0=0, T1=1)[source]
Inference results for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- ate_interval(X=None, *, T0=0, T1=1, alpha=0.05)[source]
Confidence intervals for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
ate(X, T0, T1)
, type ofate(X, T0, T1))
)
- cate_feature_names(feature_names=None)
Public interface for getting feature names.
To be overriden by estimators that apply transformations the input features.
- cate_output_names(output_names=None)
Public interface for getting output names.
To be overriden by estimators that apply transformations the outputs.
- cate_treatment_names(treatment_names=None)[source]
Get treatment names.
If the treatment is discrete or featurized, it will return expanded treatment names.
- Parameters:
treatment_names (list of str of length T.shape[1], optional) – The names of the treatments. If None and the T passed to fit was a dataframe, it defaults to the column names from the dataframe.
- Returns:
out_treatment_names – Returns (possibly expanded) treatment names.
- Return type:
- effect(X=None, *, T0=0, T1=1)[source]
Calculate the heterogeneous treatment effect \(\tau(X, T0, T1)\).
The effect is calculated between the two treatment points conditional on a vector of features on a set of m test samples \(\{T0_i, T1_i, X_i\}\).
- Parameters:
T0 ((m, d_t) matrix or vector of length m) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m) – Target treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
τ – Heterogeneous treatment effects on each outcome for each sample Note that when Y is a vector rather than a 2-dimensional array, the corresponding singleton dimension will be collapsed (so this method will return a vector)
- Return type:
(m, d_y) matrix
- effect_inference(X=None, *, T0=0, T1=1)
Inference results for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)
Confidence intervals for the quantities \(\tau(X, T0, T1)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
X ((m, d_x) matrix, optional) – Features for each sample
T0 ((m, d_t) matrix or vector of length m, default 0) – Base treatments for each sample
T1 ((m, d_t) matrix or vector of length m, default 1) – Target treatments for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
effect(X, T0, T1)
, type ofeffect(X, T0, T1))
)
- abstract fit(*args, inference=None, **kwargs)
Estimate the counterfactual model from data.
That is, estimates functions \(\tau(X, T0, T1)\), \(\partial \tau(T, X)\).
Note that the signature of this method may vary in subclasses (e.g. classes that don’t support instruments will not allow a Z argument)
- Parameters:
Y ((n, d_y) matrix or vector of length n) – Outcomes for each sample
T ((n, d_t) matrix or vector of length n) – Treatments for each sample
X ((n, d_x) matrix, optional) – Features for each sample
W ((n, d_w) matrix, optional) – Controls for each sample
Z ((n, d_z) matrix, optional) – Instruments for each sample
inference (str or
Inference
instance, optional) – Method for performing inference. All estimators support'bootstrap'
(or an instance ofBootstrapInference
), some support other methods as well.
- Return type:
self
- marginal_ate(T, X=None)
Calculate the average marginal effect \(E_{T, X}[\partial\tau(T, X)]\).
The marginal effect is calculated around a base treatment point and averaged over the population of X.
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Average marginal effects on each outcome Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will be a scalar)
- Return type:
(d_y, d_t) array
- marginal_ate_inference(T, X=None)
Inference results for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
PopulationSummaryResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_ate_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_ate(T, X)
, type ofmarginal_ate(T, X)
)
- abstract marginal_effect(T, X=None)
Calculate the heterogeneous marginal effect \(\partial\tau(T, X)\).
The marginal effect is calculated around a base treatment point conditional on a vector of features on a set of m test samples \(\{T_i, X_i\}\).
- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
grad_tau – Heterogeneous marginal effects on each outcome for each sample Note that when Y or T is a vector rather than a 2-dimensional array, the corresponding singleton dimensions in the output will be collapsed (e.g. if both are vectors, then the output of this method will also be a vector)
- Return type:
(m, d_y, d_t) array
- marginal_effect_inference(T, X=None)
Inference results for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
- Returns:
InferenceResults – The inference results instance contains prediction and prediction standard error and can on demand calculate confidence interval, z statistic and p value. It can also output a dataframe summary of these inference results.
- Return type:
- marginal_effect_interval(T, X=None, *, alpha=0.05)
Confidence intervals for the quantities \(\partial \tau(T, X)\) produced by the model.
Available only when
inference
is notNone
, when calling the fit method.- Parameters:
T ((m, d_t) matrix) – Base treatments for each sample
X ((m, d_x) matrix, optional) – Features for each sample
alpha (float in [0, 1], default 0.05) – The overall level of confidence of the reported interval. The alpha/2, 1-alpha/2 confidence interval is reported.
- Returns:
lower, upper – The lower and the upper bounds of the confidence interval for each quantity.
- Return type:
tuple(type of
marginal_effect(T, X)
, type ofmarginal_effect(T, X)
)
- property dowhy
Get a
DoWhyWrapper
to enable functionality (e.g. causal graph, refutation test, etc.) from dowhy.- Returns:
DoWhyWrapper – An instance of
DoWhyWrapper
- Return type:
instance