econml.dml.KernelDML
- class econml.dml.KernelDML(model_y='auto', model_t='auto', discrete_outcome=False, discrete_treatment=False, treatment_featurizer=None, categories='auto', fit_cate_intercept=True, dim=20, bw=1.0, cv=2, mc_iters=None, mc_agg='mean', random_state=None, allow_missing=False, use_ray=False, ray_remote_func_options=None)[source]
继承自:
econml.dml.dml.DML
使用随机傅立叶特征的线性双重机器学习估计器的专用版本。
- 参数
model_y (估计器, 默认为
'auto'
) – 确定如何将结果与特征进行拟合。如果为
'auto'
,模型将从一组线性和森林模型中选择最合适的。否则,请参阅 模型选择 以了解支持的选项范围;如果指定了单个模型,则在 discrete_outcome 为 True 时应为分类器,否则应为回归器。
model_t (估计器, 默认为
'auto'
) – 确定如何将处理与特征进行拟合。如果为
'auto'
,模型将从一组线性和森林模型中选择最合适的。否则,请参阅 模型选择 以了解支持的选项范围;如果指定了单个模型,则在 discrete_treatment 为 True 时应为分类器,否则应为回归器。
fit_cate_intercept (bool, 默认为 True) – 线性CATE模型是否应包含常数项。
dim (int, 默认为 20) – 生成的随机傅立叶特征的数量。
bw (float, 默认为 1.0) – 用于生成特征的高斯函数的带宽。
discrete_outcome (bool, 默认为
False
) – 结果是否应被视为二元的。discrete_treatment (bool, 默认为
False
) – 处理值是否应被视为类别型而非连续型量。treatment_featurizer (transformer, 可选) – 必须支持 fit_transform 和 transform 方法。用于在最终的CATE回归中创建复合处理。最终的CATE将使用 featurizer.fit_transform(T) 的结果进行训练。如果 featurizer=None,则CATE将使用 T 进行训练。
categories (‘auto’ 或 list, 默认为 ‘auto’) – 对离散处理进行编码时使用的类别(或 ‘auto’ 使用唯一的排序值)。第一个类别将被视为对照处理。
cv (int, 交叉验证生成器或可迭代对象, 默认为 2) – 决定交叉验证的分割策略。cv 的可能输入包括:
None,使用默认的3折交叉验证,
整数,指定折数。
一个可迭代对象,生成作为索引数组的 (train, test) 分割。
对于整数/None 输入,如果处理是离散的,则使用
StratifiedKFold
,否则使用KFold
(两种情况下都会进行随机洗牌)。除非使用可迭代对象,否则我们将调用 split(X,T) 来生成分割。
mc_iters (int, 可选) – 重新运行第一阶段模型的次数,以减少干扰项的方差。
mc_agg ({‘mean’, ‘median’}, 默认为 ‘mean’) – 如何在 mc_iters 次蒙特卡罗交叉拟合迭代中聚合每个样本的干扰值。
random_state (int, RandomState 实例, 或 None, 默认为 None) – 如果是 int,则 random_state 是随机数生成器使用的种子;如果是
RandomState
实例,则 random_state 是随机数生成器;如果是 None,则随机数生成器是RandomState
实例,由np.random
使用。allow_missing (bool) – 是否允许 W 中存在缺失值。如果为 True,则需要提供可以处理缺失值的 model_y, model_t。
use_ray (bool, 默认为 False) – 是否使用 Ray 并行化交叉拟合步骤。如果为 True,则必须安装 Ray。
ray_remote_func_options (dict, 默认为 None) – 使用 Ray 时传递给远程函数的选项。详见 https://docs.rayai.org.cn/en/latest/ray-core/api/doc/ray.remote.html
示例
一个使用默认模型和离散处理的简单示例
from econml.dml import KernelDML np.random.seed(123) X = np.random.normal(size=(1000, 5)) T = np.random.binomial(1, scipy.special.expit(X[:, 0])) y = (1 + .5*X[:, 0]) * T + X[:, 0] + np.random.normal(size=(1000,)) est = KernelDML(discrete_treatment=True, dim=10, bw=5) est.fit(y, T, X=X, W=None)
>>> est.effect(X[:3]) array([0.63041..., 1.86098..., 0.74218...])
- __init__(model_y='auto', model_t='auto', discrete_outcome=False, discrete_treatment=False, treatment_featurizer=None, categories='auto', fit_cate_intercept=True, dim=20, bw=1.0, cv=2, mc_iters=None, mc_agg='mean', random_state=None, allow_missing=False, use_ray=False, ray_remote_func_options=None)[source]
方法
__init__
([model_y, model_t, ...])ate
([X, T0, T1])计算平均处理效应 \(E_X[\tau(X, T0, T1)]\)。
ate_inference
([X, T0, T1])模型产生的量 \(E_X[\tau(X, T0, T1)]\) 的推断结果。仅在调用 fit 方法时
inference
不为None
时可用。ate_interval
([X, T0, T1, alpha])模型产生的量 \(E_X[\tau(X, T0, T1)]\) 的置信区间。
cate_feature_names
([feature_names])获取输出特征名称。
cate_output_names
([output_names])获取输出名称的公共接口。
cate_treatment_names
([treatment_names])获取处理名称。
常数边际处理效应线性模型中系数的推断。
coef__interval
(*[, alpha])常数边际处理效应线性模型中的系数。
const_marginal_ate
([X])计算平均常数边际CATE \(E_X[\theta(X)]\)。
模型产生的量 \(E_X[\theta(X)]\) 的推断结果。仅在调用 fit 方法时
inference
不为None
时可用。const_marginal_ate_interval
([X, alpha])模型产生的量 \(E_X[\theta(X)]\) 的置信区间。仅在调用 fit 方法时
inference
不为None
时可用。计算常数边际CATE \(\theta(·)\)。
模型产生的量 \(\theta(X)\) 的推断结果。仅在调用 fit 方法时
inference
不为None
时可用。const_marginal_effect_interval
([X, alpha])模型产生的量 \(\theta(X)\) 的置信区间。仅在调用 fit 方法时
inference
不为None
时可用。effect
([X, T0, T1])计算异质处理效应 \(\tau(X, T0, T1)\)。
effect_inference
([X, T0, T1])模型产生的量 \(\tau(X, T0, T1)\) 的推断结果。仅在调用 fit 方法时
inference
不为None
时可用。effect_interval
([X, T0, T1, alpha])模型产生的量 \(\tau(X, T0, T1)\) 的置信区间。仅在调用 fit 方法时
inference
不为None
时可用。fit
(Y, T[, X, W, sample_weight, groups, ...])从数据中估计反事实模型,即估计函数 τ(·,·,·), ∂τ(·,·)。
常数边际处理效应线性模型中截距的推断。
intercept__interval
(*[, alpha])常数边际处理效应线性模型中的截距。
marginal_ate
(T[, X])计算平均边际效应 \(E_{T, X}[\partial\tau(T, X)]\)。
marginal_ate_inference
(T[, X])模型产生的量 \(E_{T,X}[\partial \tau(T, X)]\) 的推断结果。仅在调用 fit 方法时
inference
不为None
时可用。marginal_ate_interval
(T[, X, alpha])模型产生的量 \(E_{T,X}[\partial \tau(T, X)]\) 的置信区间。仅在调用 fit 方法时
inference
不为None
时可用。marginal_effect
(T[, X])计算异质边际效应 \(\partial\tau(T, X)\)。
marginal_effect_inference
(T[, X])模型产生的量 \(\partial \tau(T, X)\) 的推断结果。仅在调用 fit 方法时
inference
不为None
时可用。marginal_effect_interval
(T[, X, alpha])模型产生的量 \(\partial \tau(T, X)\) 的置信区间。仅在调用 fit 方法时
inference
不为None
时可用。refit_final
(*[, inference])使用新的最终模型规范但保留缓存的第一阶段结果来估计反事实模型。
score
(Y, T[, X, W, sample_weight])在新的数据集上对拟合好的CATE模型进行评分。根据拟合时创建的残差干扰项模型,为新数据集生成干扰项参数。它使用不同交叉拟合折叠的模型拟合结果的平均预测。然后计算最终残差 Y 对残差 T 回归的 MSE。
shap_values
(X, *[, feature_names, ...])最终阶段模型 (const_marginal_effect) 的SHAP值
summary
([alpha, value, decimals, ...])常数边际处理效应线性模型中系数和截距的摘要。
属性
bias_part_of_coef
常数边际处理效应线性模型中的系数。
获取
DoWhyWrapper
实例,以启用 dowhy 包的其他功能。(例如,因果图、反驳测试等)featurizer
featurizer_
fit_cate_intercept_
常数边际处理效应线性模型中的截距。
获取拟合好的最终CATE模型。
model_final
model_final_
models_nuisance_
获取 E[T | X, W] 的拟合模型。
获取 E[Y | X, W] 的拟合模型。
nuisance_scores_t
nuisance_scores_y
original_featurizer
ortho_learner_model_final_
一个包含第一阶段估计的残差 (y_res, T_res) 以及相关的 X 和 W 的元组。样本顺序不保证与输入顺序相同。
rlearner_model_final_
transformer
- ate(X=None, *, T0=0, T1=1)
计算平均处理效应 \(E_X[\tau(X, T0, T1)]\)。
效应在两个处理点之间计算,并在X变量的总体上取平均。
- 参数
T0 ((m, d_t) 矩阵或长度为 m 的向量) – 每个样本的基础处理。
T1 ((m, d_t) 矩阵或长度为 m 的向量) – 每个样本的目标处理。
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
- 返回
τ – 对每个结果的平均处理效应。请注意,当 Y 是向量而不是二维数组时,结果将是一个标量。
- 返回类型
float 或 (d_y,) 数组
- ate_inference(X=None, *, T0=0, T1=1)
模型产生的量 \(E_X[\tau(X, T0, T1)]\) 的推断结果。仅在调用 fit 方法时
inference
不为None
时可用。- 参数
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
T0 ((m, d_t) 矩阵或长度为 m 的向量, 默认为 0) – 每个样本的基础处理。
T1 ((m, d_t) 矩阵或长度为 m 的向量, 默认为 1) – 每个样本的目标处理。
- 返回
PopulationSummaryResults – 推断结果实例包含预测和预测标准误差,并可按需计算置信区间、z统计量和p值。它还可以输出这些推断结果的 dataframe 摘要。
- 返回类型
- ate_interval(X=None, *, T0=0, T1=1, alpha=0.05)
模型产生的量 \(E_X[\tau(X, T0, T1)]\) 的置信区间。仅在调用 fit 方法时
inference
不为None
时可用。- 参数
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
T0 ((m, d_t) 矩阵或长度为 m 的向量, 默认为 0) – 每个样本的基础处理。
T1 ((m, d_t) 矩阵或长度为 m 的向量, 默认为 1) – 每个样本的目标处理。
alpha (float, 范围 [0, 1], 默认为 0.05) – 报告区间的整体置信水平。报告的是 alpha/2, 1-alpha/2 置信区间。
- 返回
lower, upper – 每个量的置信区间的下限和上限。
- 返回类型
tuple(type of
ate(X, T0, T1)
, type ofate(X, T0, T1))
)
- cate_feature_names(feature_names=None)
获取输出特征名称。
- 参数
feature_names (长度为 X.shape[1] 的 str 列表 或 None) – 输入特征的名称。如果为 None 且 X 是 dataframe,则默认为 dataframe 中的列名。
- 返回
out_feature_names – 输出特征 \(\phi(X)\) 的名称,即最终常数边际CATE模型的线性关系所对应的特征。它是与
coef_()
参数的每个条目关联的特征名称。当 featurizer 不为 None 且没有方法 get_feature_names(feature_names) 时不可用。否则返回 None。- 返回类型
str 列表 或 None
- cate_output_names(output_names=None)
获取输出名称的公共接口。
将被对输出应用转换的估计器覆盖。
- 参数
output_names (长度为 Y.shape[1] 的 str 列表 或 None) – 结果的名称。如果为 None 且传递给 fit 的 Y 是 dataframe,则默认为 dataframe 中的列名。
- 返回
output_names – 返回输出名称。
- 返回类型
str 列表
- cate_treatment_names(treatment_names=None)
获取处理名称。
如果处理是离散的或经过特征化的,它将返回展开的处理名称。
- 参数
treatment_names (长度为 T.shape[1] 的 str 列表, 可选) – 处理的名称。如果为 None 且传递给 fit 的 T 是 dataframe,则默认为 dataframe 中的列名。
- 返回
out_treatment_names – 返回(可能已展开的)处理名称。
- 返回类型
str 列表
- coef__interval(*, alpha=0.05)
常数边际处理效应线性模型中的系数。
- const_marginal_ate(X=None)
计算平均常数边际CATE \(E_X[\theta(X)]\)。
- 参数
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
- 返回
theta – 每个处理对每个结果的平均常数边际CATE。请注意,当 Y 或特征化后的 T(如果 treatment_featurizer 为 None 则为 T)是向量而不是二维数组时,输出中相应的单维将合并(例如,如果两者都是向量,则此方法的输出也将是一个标量)。
- 返回类型
(d_y, d_f_t) 矩阵,其中 d_f_t 是特征化后处理的维度。如果 treatment_featurizer 为 None,则 d_f_t = d_t。
- const_marginal_ate_inference(X=None)
模型产生的量 \(E_X[\theta(X)]\) 的推断结果。仅在调用 fit 方法时
inference
不为None
时可用。- 参数
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
- 返回
PopulationSummaryResults – 推断结果实例包含预测和预测标准误差,并可按需计算置信区间、z统计量和p值。它还可以输出这些推断结果的 dataframe 摘要。
- 返回类型
- const_marginal_ate_interval(X=None, *, alpha=0.05)
模型产生的量 \(E_X[\theta(X)]\) 的置信区间。仅在调用 fit 方法时
inference
不为None
时可用。- 参数
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
alpha (float, 范围 [0, 1], 默认为 0.05) – 报告区间的整体置信水平。报告的是 alpha/2, 1-alpha/2 置信区间。
- 返回
lower, upper – 每个量的置信区间的下限和上限。
- 返回类型
tuple(type of
const_marginal_ate(X)
, type ofconst_marginal_ate(X)
)
- const_marginal_effect(X=None)
计算常数边际CATE \(\theta(·)\)。
边际效应是基于一组 m 个测试样本 X[i] 的特征向量计算的条件效应。
- 参数
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
- 返回
theta – 对于每个样本 X[i],每个特征化处理对每个结果的常数边际CATE。请注意,当 Y 或特征化后的 T(如果 treatment_featurizer 为 None 则为 T)是向量而不是二维数组时,输出中相应的单维将合并(例如,如果两者都是向量,则此方法的输出也将是一个向量)。
- 返回类型
(m, d_y, d_f_t) 矩阵 或 (d_y, d_f_t) 矩阵(如果 X 为 None),其中 d_f_t 是特征化后处理的维度。如果 treatment_featurizer 为 None,则 d_f_t = d_t。
- const_marginal_effect_inference(X=None)
模型产生的量 \(\theta(X)\) 的推断结果。仅在调用 fit 方法时
inference
不为None
时可用。- 参数
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
- 返回
InferenceResults – 推断结果实例包含预测和预测标准误差,并可按需计算置信区间、z统计量和p值。它还可以输出这些推断结果的 dataframe 摘要。
- 返回类型
- const_marginal_effect_interval(X=None, *, alpha=0.05)
模型产生的量 \(\theta(X)\) 的置信区间。仅在调用 fit 方法时
inference
不为None
时可用。- 参数
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
alpha (float, 范围 [0, 1], 默认为 0.05) – 报告区间的整体置信水平。报告的是 alpha/2, 1-alpha/2 置信区间。
- 返回
lower, upper – 每个量的置信区间的下限和上限。
- 返回类型
tuple(type of
const_marginal_effect(X)
, type ofconst_marginal_effect(X)
)
- effect(X=None, *, T0=0, T1=1)
计算异质处理效应 \(\tau(X, T0, T1)\)。
效应是基于一组 m 个测试样本 \(\{T0_i, T1_i, X_i\}\) 的特征向量,在两个处理点之间计算的条件效应。
- 参数
T0 ((m, d_t) 矩阵或长度为 m 的向量) – 每个样本的基础处理。
T1 ((m, d_t) 矩阵或长度为 m 的向量) – 每个样本的目标处理。
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
- 返回
τ – 对每个样本,每个结果的异质处理效应。请注意,当 Y 是向量而不是二维数组时,相应的单维将合并(因此此方法将返回一个向量)。
- 返回类型
(m, d_y) 矩阵
- effect_inference(X=None, *, T0=0, T1=1)
模型产生的量 \(\tau(X, T0, T1)\) 的推断结果。仅在调用 fit 方法时
inference
不为None
时可用。- 参数
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
T0 ((m, d_t) 矩阵或长度为 m 的向量, 默认为 0) – 每个样本的基础处理。
T1 ((m, d_t) 矩阵或长度为 m 的向量, 默认为 1) – 每个样本的目标处理。
- 返回
InferenceResults – 推断结果实例包含预测和预测标准误差,并可按需计算置信区间、z统计量和p值。它还可以输出这些推断结果的 dataframe 摘要。
- 返回类型
- effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)
模型产生的量 \(\tau(X, T0, T1)\) 的置信区间。仅在调用 fit 方法时
inference
不为None
时可用。- 参数
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
T0 ((m, d_t) 矩阵或长度为 m 的向量, 默认为 0) – 每个样本的基础处理。
T1 ((m, d_t) 矩阵或长度为 m 的向量, 默认为 1) – 每个样本的目标处理。
alpha (float, 范围 [0, 1], 默认为 0.05) – 报告区间的整体置信水平。报告的是 alpha/2, 1-alpha/2 置信区间。
- 返回
lower, upper – 每个量的置信区间的下限和上限。
- 返回类型
tuple(type of
effect(X, T0, T1)
, type ofeffect(X, T0, T1))
)
- fit(Y, T, X=None, W=None, *, sample_weight=None, groups=None, cache_values=False, inference='auto')[source]
从数据中估计反事实模型,即估计函数 τ(·,·,·), ∂τ(·,·)。
- 参数
Y ((n × d_y) 矩阵或长度为 n 的向量) – 每个样本的结果。
T ((n × dₜ) 矩阵或长度为 n 的向量) – 每个样本的处理。
X ((n × dₓ) 矩阵, 可选) – 每个样本的特征。
W ((n × d_w) 矩阵, 可选) – 每个样本的控制变量。
sample_weight ((n,) array_like 或 None) – 每个样本的个体权重。如果为 None,则假定权重相等。
groups ((n,) 向量, 可选) – 分割时同一组的所有行将被保留在一起。如果 groups 不为 None,则传递给此类初始化器的 cv 参数必须支持其 split 方法的 ‘groups’ 参数。
cache_values (bool, 默认为 False) – 是否缓存输入和第一阶段结果,这将允许重新拟合不同的最终模型。
inference (str,
Inference
实例, 或 None) – 执行推断的方法。此估计器支持 ‘bootstrap’(或BootstrapInference
实例)和 ‘auto’(或LinearModelFinalInference
实例)。
- 返回类型
self
- intercept__interval(*, alpha=0.05)
常数边际处理效应线性模型中的截距。
- 参数
alpha (float, 范围 [0, 1], 默认为 0.05) – 报告区间的整体置信水平。报告的是 alpha/2, 1-alpha/2 置信区间。
- 返回
lower, upper – 置信区间的下限和上限。
- 返回类型
tuple(type of
intercept_()
, type ofintercept_()
)
- marginal_ate(T, X=None)
计算平均边际效应 \(E_{T, X}[\partial\tau(T, X)]\)。
边际效应围绕基础处理点计算,并在X的总体上取平均。
- 参数
T ((m, d_t) 矩阵) – 每个样本的基础处理。
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
- 返回
grad_tau – 对每个结果的平均边际效应。请注意,当 Y 或 T 是向量而不是二维数组时,输出中相应的单维将合并(例如,如果两者都是向量,则此方法的输出将是一个标量)。
- 返回类型
(d_y, d_t) 数组
- marginal_ate_inference(T, X=None)
模型产生的量 \(E_{T,X}[\partial \tau(T, X)]\) 的推断结果。仅在调用 fit 方法时
inference
不为None
时可用。- 参数
T ((m, d_t) 矩阵) – 每个样本的基础处理。
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
- 返回
PopulationSummaryResults – 推断结果实例包含预测和预测标准误差,并可按需计算置信区间、z统计量和p值。它还可以输出这些推断结果的 dataframe 摘要。
- 返回类型
- marginal_ate_interval(T, X=None, *, alpha=0.05)
模型产生的量 \(E_{T,X}[\partial \tau(T, X)]\) 的置信区间。仅在调用 fit 方法时
inference
不为None
时可用。- 参数
T ((m, d_t) 矩阵) – 每个样本的基础处理。
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
alpha (float, 范围 [0, 1], 默认为 0.05) – 报告区间的整体置信水平。报告的是 alpha/2, 1-alpha/2 置信区间。
- 返回
lower, upper – 每个量的置信区间的下限和上限。
- 返回类型
tuple(type of
marginal_ate(T, X)
, type ofmarginal_ate(T, X)
)
- marginal_effect(T, X=None)
计算异质边际效应 \(\partial\tau(T, X)\)。
边际效应是基于 m 个测试样本 \(\{T_i, X_i\}\) 中围绕一个基准处理点,以特征向量为条件计算得出的。如果
treatment_featurizer
为 None,则此计算中会忽略基准处理,结果等同于const_marginal_effect
。- 参数
T ((m, d_t) 矩阵) – 每个样本的基础处理。
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
- 返回
grad_tau – 每个样本上,每个结果的异质边际效应。请注意,当 Y 或 T 是向量而不是二维数组时,输出中对应的单维度将被压缩(例如,如果 Y 和 T 都是向量,则此方法的输出也将是向量)
- 返回类型
(m, d_y, d_t) 数组
- marginal_effect_inference(T, X=None)
模型产生的 \(\partial \tau(T, X)\) 量的推断结果。仅在调用
fit
方法时,inference
不为None
时可用。- 参数
T ((m, d_t) 矩阵) – 每个样本的基础处理。
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
- 返回
InferenceResults – 推断结果实例包含预测和预测标准误差,并可按需计算置信区间、z统计量和p值。它还可以输出这些推断结果的 dataframe 摘要。
- 返回类型
- marginal_effect_interval(T, X=None, *, alpha=0.05)
模型产生的 \(\partial \tau(T, X)\) 量的置信区间。仅在调用
fit
方法时,inference
不为None
时可用。- 参数
T ((m, d_t) 矩阵) – 每个样本的基础处理。
X ((m, d_x) 矩阵, 可选) – 每个样本的特征。
alpha (float, 范围 [0, 1], 默认为 0.05) – 报告区间的整体置信水平。报告的是 alpha/2, 1-alpha/2 置信区间。
- 返回
lower, upper – 每个量的置信区间的下限和上限。
- 返回类型
tuple(
marginal_effect(T, X)
的类型,marginal_effect(T, X)
的类型)
- refit_final(*, inference='auto')
使用新的最终模型规范但保留缓存的第一阶段结果来估计反事实模型。
为了使其成功,必须使用
cache_values=True
调用过fit
方法。此调用只会重新拟合最终模型。此调用将使用任何改变最终阶段估计的参数的当前设置。如果任何改变第一阶段冗余估计(nuisance estimates)方式的参数也已被更改,则此调用将不起作用。您需要再次调用 fit 来改变第一阶段估计结果。- 参数
inference (*推断方法, 可选*) – 表示推断方法的字符串或对象
- 返回
self – 此实例
- 返回类型
- score(Y, T, X=None, W=None, sample_weight=None)
对新数据集上的已拟合 CATE 模型进行评分。根据 fit 时创建的已拟合残差冗余模型为新数据集生成冗余参数。它使用由不同交叉拟合(crossfitting)折叠拟合的模型的平均预测。然后计算最终残差 Y 对残差 T 回归的 MSE。
如果
model_final
没有score
方法,则会引发AttributeError
- 参数
Y (*(n, d_y) 矩阵 或 长度为 n 的向量*) – 每个样本的结果
T (*(n, d_t) 矩阵 或 长度为 n 的向量*) – 每个样本的处理
X (*(n, d_x) 矩阵, 可选*) – 每个样本的特征
W (*(n, d_w) 矩阵, 可选*) – 每个样本的控制变量
sample_weight (*(n,) 向量, 可选*) – 每个样本的权重
- 返回
score – 最终 CATE 模型在新数据上的 MSE。
- 返回类型
- shap_values(X, *, feature_names=None, treatment_names=None, output_names=None, background_samples=100)
最终阶段模型 (const_marginal_effect) 的SHAP值
- 参数
X (*(m, d_x) 矩阵*) – 每个样本的特征。应与最终阶段中拟合的 X 形状相同。
feature_names (*长度为 X.shape[1] 的字符串列表, 可选*) – 输入特征的名称。
treatment_names (*列表, 可选*) – 特征化处理的名称。在离散处理情景下,名称不应包含基准处理的名称(即对照处理,默认为按字母顺序较小的一个)。
output_names (*列表, 可选*) – 结果的名称。
background_samples (*整数 , 默认 100*) – 用于计算基准效应的样本数量。如果为 None,则使用所有样本。
- 返回
shap_outs – 一个嵌套字典,使用每个结果名称(例如,当 output_names=None 时为 'Y0', 'Y1', …)和每个处理名称(例如,当 treatment_names=None 时为 'T0', 'T1', …)作为键,将
shap_values
解释对象作为值。如果在 fit 时的输入数据也包含元数据(例如是 pandas DataFrames),则将使用处理、结果和特征的列元数据来取代上述默认值(除非用户通过显式传递相应的名称来覆盖)。- 返回类型
Explanation 对象的嵌套字典
- summary(alpha=0.05, value=0, decimals=3, feature_names=None, treatment_names=None, output_names=None)
常数边际处理效应线性模型中系数和截距的摘要。
- 参数
alpha (float, 范围 [0, 1], 默认为 0.05) – 报告区间的整体置信水平。报告的是 alpha/2, 1-alpha/2 置信区间。
value (*float, 默认 0*) – 您想在零假设下检验的指标的平均值。
decimals (*int, 默认 3*) – 用于四舍五入每列的小数位数。
feature_names (*字符串列表, 可选*) – 输入特征的名称
treatment_names (*字符串列表, 可选*) – 处理的名称
output_names (*字符串列表, 可选*) – 输出的名称
- 返回
smry – 这包含摘要表和文本,可以打印或转换为各种输出格式。
- 返回类型
Summary 实例
- property coef_
常数边际处理效应线性模型中的系数。
- 返回
coef – 其中 n_x 是进入最终模型的特征数量(如果 CATE 估计器具有特征化器,则为 X 的维度或
featurizer.fit_transform(X)
的维度),n_t 是处理数量,n_y 是结果数量。如果原始输入是向量而不是二维数组,则维度将被省略。对于二元处理,n_t 维度也被省略。- 返回类型
(n_x,) 或 (n_t, n_x) 或 (n_y, n_t, n_x) 数组状对象
- property dowhy
获取
DoWhyWrapper
的实例,以使用来自 dowhy 包的其他功能(例如,因果图、反驳测试等)。- 返回
DoWhyWrapper –
DoWhyWrapper
的一个实例- 返回类型
实例
- property intercept_
常数边际处理效应线性模型中的截距。
- 返回
intercept – 其中 n_t 是处理数量,n_y 是结果数量。如果原始输入是向量而不是二维数组,则维度将被省略。对于二元处理,n_t 维度也被省略。
- 返回类型
float 或 (n_y,) 或 (n_y, n_t) 数组状对象
- property model_cate
获取拟合好的最终CATE模型。
- 返回
model_cate –
model_final
对象的一个实例,该实例在调用 fit 后被拟合,对应于恒定边际 CATE 模型。- 返回类型
type(
model_final
) 类型的对象
- property models_t
获取 E[T | X, W] 的拟合模型。
- 返回
models_t – model_y 对象实例的嵌套列表。子列表数量等于蒙特卡洛迭代次数,子列表中的每个元素对应于一个交叉拟合(crossfitting)折叠,并且是用于该训练折叠的模型实例。
- 返回类型
type(model_t) 类型的对象的嵌套列表
- property models_y
获取 E[Y | X, W] 的拟合模型。
- 返回
models_y – model_y 对象实例的嵌套列表。子列表数量等于蒙特卡洛迭代次数,子列表中的每个元素对应于一个交叉拟合(crossfitting)折叠,并且是用于该训练折叠的模型实例。
- 返回类型
type(model_y) 类型的对象的嵌套列表
- property residuals_
一个元组 (y_res, T_res, X, W),包含来自第一阶段估计的残差以及相关的 X 和 W。不保证样本的顺序与输入顺序相同。