econml.iv.sieve.SieveTSLS
- class econml.iv.sieve.SieveTSLS(*, t_featurizer, x_featurizer, z_featurizer, dt_featurizer)[source]
Bases:
econml._cate_estimator.BaseCateEstimator
Non-parametric instrumental variables estimator.
Supports the use of arbitrary featurizers for the features, treatments, and instruments.
- Parameters
t_featurizer (transformer) – Featurizer used to transform the treatments
x_featurizer (transformer) – Featurizer used to transform the raw features
z_featurizer (transformer) – Featurizer used to transform the instruments
dt_featurizer (transformer) – Featurizer used to transform the treatments for the computation of the marginal effect. This should produce a 3-dimensional array, containing the per-treatment derivative of each transformed treatment. That is, given a treatment array of shape(n, dₜ), the output should have shape(n, dₜ, fₜ), where fₜ is the number of columns produced by t_featurizer.
Methods
__init__
(*, t_featurizer, x_featurizer, ...)ate
([X])Calculate the average treatment effect \(E_X[\tau(X, T0, T1)]\).
ate_inference
([X])Inference results for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
ate_interval
([X, alpha])Confidence intervals for the quantity \(E_X[\tau(X, T0, T1)]\) produced by the model.
cate_feature_names
([feature_names])Public interface for getting feature names.
cate_output_names
([output_names])Public interface for getting output names.
cate_treatment_names
([treatment_names])Public interface for getting treatment names.
effect
([X, T0, T1])Calculate the heterogeneous treatment effect τ(·,·,·).
effect_inference
([X, T0, T1])Inference results for the quantities \(\tau(X, T0, T1)\) produced by the model.
effect_interval
([X, T0, T1, alpha])Confidence intervals for the quantities \(\tau(X, T0, T1)\) produced by the model.
fit
(Y, T, *, Z[, X, W, inference])Estimate the counterfactual model from data, i.e. estimates functions τ(·, ·, ·), ∂τ(·, ·).
marginal_ate
(T[, X])Calculate the average marginal effect \(E_{T, X}[\partial\tau(T, X)]\).
marginal_ate_inference
(T[, X])Inference results for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
marginal_ate_interval
(T[, X, alpha])Confidence intervals for the quantities \(E_{T,X}[\partial \tau(T, X)]\) produced by the model.
marginal_effect
(T[, X])Calculate the heterogeneous marginal effect ∂τ(·, ·).
marginal_effect_inference
(T[, X])Inference results for the quantities \(\partial \tau(T, X)\) produced by the model.
marginal_effect_interval
(T[, X, alpha])Confidence intervals for the quantities \(\partial \tau(T, X)\) produced by the model.
Attributes
Get an instance of
DoWhyWrapper
to allow other functionalities from dowhy package.- 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 (optional (m, d_x) matrix) – 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 (optional (m, d_x) matrix) – Features for each sample
T0 (optional (m, d_t) matrix or vector of length m (Default=0)) – Base treatments for each sample
T1 (optional (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 (optional (m, d_x) matrix) – Features for each sample
T0 (optional (m, d_t) matrix or vector of length m (Default=0)) – Base treatments for each sample
T1 (optional (m, d_t) matrix or vector of length m (Default=1)) – Target treatments for each sample
alpha (optional 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.
- Parameters
feature_names (list of strings of length X.shape[1] or None) – The names of the input features. If None and X is a dataframe, it defaults to the column names from the dataframe.
- Returns
out_feature_names – Returns feature names.
- Return type
list of strings or None
- cate_output_names(output_names=None)
Public interface for getting output names.
To be overriden by estimators that apply transformations the outputs.
- Parameters
output_names (list of strings of length Y.shape[1] or None) – The names of the outcomes. If None and the Y passed to fit was a dataframe, it defaults to the column names from the dataframe.
- Returns
output_names – Returns output names.
- Return type
list of strings
- cate_treatment_names(treatment_names=None)
Public interface for getting treatment names.
To be overriden by estimators that apply transformations the treatments.
- Parameters
treatment_names (list of strings of length T.shape[1] or None) – 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
treatment_names – Returns treatment names.
- Return type
list of strings
- effect(X=None, T0=0, T1=1)[source]
Calculate the heterogeneous treatment effect τ(·,·,·).
The effect is calculated between the two treatment points conditional on a vector of features on a set of m test samples {T0ᵢ, T1ᵢ, Xᵢ}.
- Parameters
T0 ((m × dₜ) matrix or vector of length m) – Base treatments for each sample
T1 ((m × dₜ) matrix or vector of length m) – Target treatments for each sample
X (optional (m × dₓ) matrix) – 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 (optional (m, d_x) matrix) – Features for each sample
T0 (optional (m, d_t) matrix or vector of length m (Default=0)) – Base treatments for each sample
T1 (optional (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 (optional (m, d_x) matrix) – Features for each sample
T0 (optional (m, d_t) matrix or vector of length m (Default=0)) – Base treatments for each sample
T1 (optional (m, d_t) matrix or vector of length m (Default=1)) – Target treatments for each sample
alpha (optional 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))
)
- fit(Y, T, *, Z, X=None, W=None, inference=None)[source]
Estimate the counterfactual model from data, i.e. estimates functions τ(·, ·, ·), ∂τ(·, ·).
- Parameters
Y ((n × d_y) matrix) – Outcomes for each sample
T ((n × dₜ) matrix) – Treatments for each sample
X (optional(n × dₓ) matrix) – Features for each sample
W (optional(n × d_w) matrix) – Controls for each sample
Z (optional(n × d_z) matrix) – Instruments for each sample
inference (string,
Inference
instance, or None) – Method for performing inference. This estimator supports ‘bootstrap’ (or an instance ofBootstrapInference
)
- 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 (optional (m, d_x) matrix) – 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 (optional (m, d_x) matrix or None (Default=None)) – 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 (optional (m, d_x) matrix or None (Default=None)) – Features for each sample
alpha (optional 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 ∂τ(·, ·).
The marginal effect is calculated around a base treatment point conditional on a vector of features on a set of m test samples {Tᵢ, Xᵢ}.
- Parameters
T ((m × dₜ) matrix) – Base treatments for each sample
X (optional(m × dₓ) matrix) – 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ₜ) 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 (optional (m, d_x) matrix or None (Default=None)) – 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 (optional (m, d_x) matrix or None (Default=None)) – Features for each sample
alpha (optional 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 an instance of
DoWhyWrapper
to allow other functionalities from dowhy package. (e.g. causal graph, refutation test, etc.)- Returns
DoWhyWrapper – An instance of
DoWhyWrapper
- Return type
instance