econml.dr.ForestDRLearner

class econml.dr.ForestDRLearner(*, model_regression='auto', model_propensity='auto', discrete_outcome=False, featurizer=None, min_propensity=1e-06, categories='auto', cv=2, mc_iters=None, mc_agg='mean', n_estimators=1000, max_depth=None, min_samples_split=5, min_samples_leaf=5, min_weight_fraction_leaf=0.0, max_features='auto', min_impurity_decrease=0.0, max_samples=0.45, min_balancedness_tol=0.45, honest=True, subforest_size=4, n_jobs=- 1, verbose=0, random_state=None, allow_missing=False, use_ray=False, ray_remote_func_options=None)[source]

基类: econml._cate_estimator.ForestModelFinalCateEstimatorDiscreteMixin, econml.dr._drlearner.DRLearner

DRLearner 的实例,使用 RegressionForest 作为最终模型,以启用非参数推断。

参数
  • model_propensity (估计器, default 'auto') – 处理 Pr[T=t | X, W] 的分类器。通过将处理变量对(特征、控制变量)的连接进行回归训练得到。

    • 如果为 'auto',模型将是线性模型和森林模型集合中拟合最好的一个

    • 否则,请参阅 模型选择 了解支持的选项范围

  • model_regression (估计器, default 'auto') – 估计 E[Y | X, W, T] 的估计器。通过将 Y 对(特征、控制变量、one-hot 编码处理变量)的连接进行回归训练得到。one-hot 编码不包括基准处理变量。

    • 如果为 'auto',模型将是线性模型和森林模型集合中拟合最好的一个

    • 否则,请参阅 模型选择 了解支持的选项范围;如果指定了单个模型,则在 discrete_outcome 为 True 时应为分类器,否则为回归器

  • discrete_outcome (bool, default False) – 是否将结果视为二元的

  • min_propensity (float, default 1e-6) – 截断倾向性估计的最小倾向性,以避免除以零。

  • categories ('auto' 或 list, default 'auto') – 编码离散处理变量时使用的类别(或 'auto' 表示使用唯一的排序值)。第一个类别将被视为控制处理。

  • cv (int, cross-validation generator 或 an iterable, default 2) – 确定交叉验证分割策略。cv 可能的输入是

    • None,使用默认的 3 折交叉验证,

    • 整数,指定折叠数。

    • CV 分割器

    • 可迭代对象,以索引数组的形式生成 (train, test) 分割。

    对于整数/None 输入,如果处理变量是离散的,使用 StratifiedKFold,否则使用 KFold(两种情况下都进行随机打乱)。

    除非使用可迭代对象,否则我们调用 split(concat[W, X], T) 来生成分割。如果所有 W、X 都为 None,则我们调用 split(ones((T.shape[0], 1)), T)

  • mc_iters (int, optional) – 重新运行第一阶段模型的次数,以减少干扰项的方差。

  • mc_agg ({'mean', 'median'}, default 'mean') – 如何在 mc_iters Monte Carlo 交叉拟合迭代中聚合每个样本的干扰项值。

  • n_estimators (int, default 100) – 森林中的树总数。森林由 sqrt(n_estimators) 个子森林组成,每个子森林包含 sqrt(n_estimators) 棵树。

  • max_depth (int 或 None, optional) – 树的最大深度。如果为 None,则节点会展开,直到所有叶子都纯净或直到所有叶子包含的样本少于 min_samples_split。

  • min_samples_split (int, float, default 2) – 分割内部节点所需的最小分割样本数。

    • 如果为 int,则将 min_samples_split 视为最小数量。

    • 如果为 float,则 min_samples_split 是一个分数,并且 ceil(min_samples_split * n_samples) 是每个分割的最小样本数。

  • min_samples_leaf (int, float, default 1) – 位于叶节点所需的最小样本数。任何深度的分割点只有在分割后,左分支和右分支至少各有 min_samples_leaf 个分割样本时才会被考虑。这可能会使模型更平滑,特别是在回归中。构建后,树也会被剪枝,以确保每个叶子节点至少有 min_samples_leaf 个估计样本。

    • 如果为 int,则将 min_samples_leaf 视为最小数量。

    • 如果为 float,则 min_samples_leaf 是一个分数,并且 ceil(min_samples_leaf * n_samples) 是每个节点的最小样本数。

  • min_weight_fraction_leaf (float, default 0.) – 位于叶节点所需的总权重(所有分割样本的)的最小加权分数。当未提供 sample_weight 时,样本具有相等权重。构建后,树会被剪枝,以确保每个叶子节点中包含的估计样本总权重的分数至少为 min_weight_fraction_leaf

  • max_features (int, float, str, 或 None, default “auto”) – 寻找最佳分割时考虑的特征数量

    • 如果为 int,则在每次分割时考虑 max_features 个特征。

    • 如果为 float,则 max_features 是一个分数,并且在每次分割时考虑 int(max_features * n_features) 个特征。

    • 如果为 “auto”,则 max_features=n_features

    • 如果为 “sqrt”,则 max_features=sqrt(n_features)

    • 如果为 “log2”,则 max_features=log2(n_features)

    • 如果为 None,则 max_features=n_features

    注意:即使需要有效检查超过 max_features 个特征,搜索分割也不会停止,直到找到节点的至少一个有效分区。

  • min_impurity_decrease (float, default 0.) – 如果分割导致的杂质减少大于或等于此值,则节点将被分割。

    加权杂质减少方程如下

    N_t / N * (impurity - N_t_R / N_t * right_impurity
                        - N_t_L / N_t * left_impurity)
    

    其中 N 是总分割样本数,N_t 是当前节点的分割样本数,N_t_L 是左子节点的分割样本数,N_t_R 是右子节点的分割样本数。

    N, N_t, N_t_RN_t_L 都指加权总和,如果传递了 sample_weight

  • max_samples (int 或 float in (0, .5], default .45,) – 用于训练每棵树的每个子采样的样本数量

    • 如果为 int,则使用 max_samples 个样本(从所有样本中不放回采样)训练每棵树

    • 如果为 float,则使用 ceil(max_samples * n_samples) 个样本(从所有样本中不放回采样)训练每棵树。

  • min_balancedness_tol (float in [0, .5], default .45) – 我们能容忍的分割不平衡程度。这强制要求分割后,分割样本至少有 (.5 - min_balancedness_tol) 的分数落在分割的两侧;或者如果 sample_weight 不为 None,则为样本总权重的分数。默认值确保父节点权重的至少 5% 落在分割的每一侧。将其设置为 0.0 表示不考虑平衡性,设置为 .5 表示完美平衡分割。为了使形式化推断理论有效,此值必须是任何正数常数且远离零。

  • honest (bool, default True) – 是否使用诚实树,即一半样本用于创建树结构,另一半用于叶节点的估计。如果为 False,则所有样本都用于这两部分。

  • subforest_size (int, default 4,) – 用于 Little-Bags Bootstrap 计算的每个子森林中的树数量。n_estimators 参数必须可被 subforest_size 整除。通常应为一个小的常数。

  • n_jobs (int 或 None, default -1) – 并行运行 fitpredict 的作业数。None 表示 1,除非在 joblib.parallel_backend() 上下文中。-1 表示使用所有处理器。有关更多详细信息,请参阅词汇表

  • verbose (int, default 0) – 控制拟合和预测时的详细程度。

  • random_state (int, RandomState instance, 或 None, default None) – 如果为 int,random_state 是随机数生成器使用的种子;如果为 RandomState 实例,random_state 是随机数生成器;如果为 None,随机数生成器是 RandomState 实例,由 np.random 使用。

  • allow_missing (bool) – 是否允许 W 中存在缺失值。如果为 True,则需要提供能处理缺失值的 model_propensity 和 model_regression。

  • use_ray (bool, default False) – 是否使用 Ray 并行化交叉验证步骤。如果为 True,必须安装 Ray。

  • ray_remote_func_options (dict, default None) – 使用 Ray 时传递给远程函数的选项。参见 https://docs.rayai.org.cn/en/latest/ray-core/api/doc/ray.remote.html

__init__(*, model_regression='auto', model_propensity='auto', discrete_outcome=False, featurizer=None, min_propensity=1e-06, categories='auto', cv=2, mc_iters=None, mc_agg='mean', n_estimators=1000, max_depth=None, min_samples_split=5, min_samples_leaf=5, min_weight_fraction_leaf=0.0, max_features='auto', min_impurity_decrease=0.0, max_samples=0.45, min_balancedness_tol=0.45, honest=True, subforest_size=4, n_jobs=- 1, verbose=0, random_state=None, allow_missing=False, use_ray=False, ray_remote_func_options=None)[source]

方法

__init__(*[, model_regression, ...])

ate([X, T0, T1])

计算平均处理效应 \(E_X[\tau(X, T0, T1)]\)

ate_inference([X, T0, T1])

模型产生的量 \(E_X[\tau(X, T0, T1)]\) 的推断结果。

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])

获取处理变量名称。

const_marginal_ate([X])

计算平均常数边际 CATE \(E_X[\theta(X)]\)

const_marginal_ate_inference([X])

模型产生的量 \(E_X[\theta(X)]\) 的推断结果。

const_marginal_ate_interval([X, alpha])

模型产生的量 \(E_X[\theta(X)]\) 的置信区间。

const_marginal_effect([X])

计算常数边际 CATE \(\theta(·)\)

const_marginal_effect_inference([X])

模型产生的量 \(\theta(X)\) 的推断结果。

const_marginal_effect_interval([X, alpha])

模型产生的量 \(\theta(X)\) 的置信区间。

effect([X, T0, T1])

计算异质处理效应 \(\tau(X, T0, T1)\)

effect_inference([X, T0, T1])

模型产生的量 \(\tau(X, T0, T1)\) 的推断结果。

effect_interval([X, T0, T1, alpha])

模型产生的量 \(\tau(X, T0, T1)\) 的置信区间。

feature_importances_(T)

fit(Y, T, *[, X, W, sample_weight, groups, ...])

从数据中估计反事实模型,即估计函数 τ(·,·,·), ∂τ(·,·)。

marginal_ate(T[, X])

计算平均边际效应 \(E_{T, X}[\partial\tau(T, X)]\)

marginal_ate_inference(T[, X])

模型产生的量 \(E_{T,X}[\partial \tau(T, X)]\) 的推断结果。

marginal_ate_interval(T[, X, alpha])

模型产生的量 \(E_{T,X}[\partial \tau(T, X)]\) 的置信区间。

marginal_effect(T[, X])

计算异质边际效应 \(\partial\tau(T, X)\)

marginal_effect_inference(T[, X])

模型产生的量 \(\partial \tau(T, X)\) 的推断结果。

marginal_effect_interval(T[, X, alpha])

模型产生的量 \(\partial \tau(T, X)\) 的置信区间。

model_cate([T])

获取拟合的最终 CATE 模型。

multitask_model_cate()

获取拟合的最终 CATE 模型。

refit_final(*[, inference])

使用新的最终模型规范但使用缓存的第一阶段结果重新估计反事实模型。

score(Y, T[, X, W, sample_weight])

在新数据集上对拟合的 CATE 模型进行评分。

shap_values(X, *[, feature_names, ...])

最终阶段模型 (const_marginal_effect) 的 Shap 值

属性

dowhy

获取 DoWhyWrapper 实例,以允许使用 dowhy 包的其他功能(例如因果图、反驳测试等)。

featurizer_

获取拟合的特征提取器。

fitted_models_final

model_final

model_final_

models_nuisance_

models_propensity

获取拟合的倾向性模型。

models_regression

获取拟合的回归模型。

multitask_model_final

nuisance_scores_propensity

获取倾向性模型在样本外训练数据上的评分

nuisance_scores_regression

获取回归模型在样本外训练数据上的评分

ortho_learner_model_final_

transformer

ate(X=None, *, T0=0, T1=1)

计算平均处理效应 \(E_X[\tau(X, T0, T1)]\)

效应在两个处理点之间计算,并对 X 变量总体取平均。

参数
  • T0 ((m, d_t) matrix 或 vector of length m) – 每个样本的基准处理变量

  • T1 ((m, d_t) matrix 或 vector of length m) – 每个样本的目标处理变量

  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

返回

τ – 每个结果的平均处理效应 请注意,当 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) matrix, optional) – 每个样本的特征,可选

  • T0 ((m, d_t) matrix 或 vector of length m, default 0) – 每个样本的基准处理变量

  • T1 ((m, d_t) matrix 或 vector of length m, default 1) – 每个样本的目标处理变量

返回

PopulationSummaryResults – 推断结果实例包含预测和预测标准误差,并且可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的数据框摘要。

返回类型

对象

ate_interval(X=None, *, T0=0, T1=1, alpha=0.05)

模型产生的量 \(E_X[\tau(X, T0, T1)]\) 的置信区间。仅当调用 fit 方法时 inference 不为 None 时可用。

参数
  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

  • T0 ((m, d_t) matrix 或 vector of length m, default 0) – 每个样本的基准处理变量

  • T1 ((m, d_t) matrix 或 vector of length m, default 1) – 每个样本的目标处理变量

  • alpha (float in [0, 1], default 0.05) – 报告区间的总体置信水平。报告 alpha/2,1-alpha/2 置信区间。

返回

lower, upper – 每个量的置信区间的下限和上限。

返回类型

tuple( ate(X, T0, T1) 的类型, ate(X, T0, T1) 的类型 )

cate_feature_names(feature_names=None)

获取输出特征名称。

参数

feature_names (list of str of length X.shape[1] 或 None) – 输入特征的名称列表。如果为 None 且 X 是数据框,则默认为数据框的列名。

返回

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 (list of str of length Y.shape[1] 或 None) – 结果的名称列表。如果为 None 且传递给 fit 的 Y 是数据框,则默认为数据框的列名。

返回

output_names – 返回输出名称。

返回类型

str 列表

cate_treatment_names(treatment_names=None)

获取处理变量名称。

如果处理变量是离散的或经过特征提取,它将返回扩展的处理变量名称。

参数

treatment_names (list of str of length T.shape[1], optional) – 处理变量的名称列表。如果为 None 且传递给 fit 的 T 是数据框,则默认为数据框的列名。

返回

out_treatment_names – 返回(可能已扩展的)处理变量名称。

返回类型

str 列表

const_marginal_ate(X=None)

计算平均常数边际 CATE \(E_X[\theta(X)]\)

参数

X ((m, d_x) matrix, optional) – 每个样本的特征,可选。

返回

theta – 每个处理变量对每个结果的平均常数边际 CATE。请注意,当 Y 或 T 是向量而不是二维数组时,输出中相应的单维将折叠(例如,如果两者都是向量,则此方法的输出将是标量)

返回类型

(d_y, d_t) 矩阵

const_marginal_ate_inference(X=None)

模型产生的量 \(E_X[\theta(X)]\) 的推断结果。仅当调用 fit 方法时 inference 不为 None 时可用。

参数

X ((m, d_x) matrix, optional) – 每个样本的特征,可选

返回

PopulationSummaryResults – 推断结果实例包含预测和预测标准误差,并且可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的数据框摘要。

返回类型

对象

const_marginal_ate_interval(X=None, *, alpha=0.05)

模型产生的量 \(E_X[\theta(X)]\) 的置信区间。仅当调用 fit 方法时 inference 不为 None 时可用。

参数
  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

  • alpha (float in [0, 1], default 0.05) – 报告区间的总体置信水平。报告 alpha/2,1-alpha/2 置信区间。

返回

lower, upper – 每个量的置信区间的下限和上限。

返回类型

tuple( const_marginal_ate(X) 的类型 , const_marginal_ate(X) 的类型 )

const_marginal_effect(X=None)

计算常数边际 CATE \(\theta(·)\)

边际效应是基于 m 个测试样本 X[i] 的特征向量计算的条件效应。

参数

X ((m, d_x) matrix, optional) – 每个样本的特征,可选。

返回

theta – 每个处理变量对每个结果的常数边际 CATE,适用于每个样本 X[i]。请注意,当 Y 或 T 是向量而不是二维数组时,输出中相应的单维将折叠(例如,如果两者都是向量,则此方法的输出也将是向量)

返回类型

(m, d_y, d_t) 矩阵 或 (d_y, d_t) 矩阵(如果 X 为 None)

const_marginal_effect_inference(X=None)

模型产生的量 \(\theta(X)\) 的推断结果。仅当调用 fit 方法时 inference 不为 None 时可用。

参数

X ((m, d_x) matrix, optional) – 每个样本的特征,可选

返回

InferenceResults – 推断结果实例包含预测和预测标准误差,并且可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的数据框摘要。

返回类型

对象

const_marginal_effect_interval(X=None, *, alpha=0.05)

模型产生的量 \(\theta(X)\) 的置信区间。仅当调用 fit 方法时 inference 不为 None 时可用。

参数
  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

  • alpha (float in [0, 1], default 0.05) – 报告区间的总体置信水平。报告 alpha/2,1-alpha/2 置信区间。

返回

lower, upper – 每个量的置信区间的下限和上限。

返回类型

tuple( const_marginal_effect(X) 的类型 , const_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) matrix 或 vector of length m) – 每个样本的基准处理变量

  • T1 ((m, d_t) matrix 或 vector of length m) – 每个样本的目标处理变量

  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

返回

τ – 每个样本在每个结果上的异质处理效应 请注意,当 Y 是向量而不是二维数组时,相应的单维将折叠(因此此方法将返回一个向量)

返回类型

(m, d_y) 矩阵

effect_inference(X=None, *, T0=0, T1=1)

模型产生的量 \(\tau(X, T0, T1)\) 的推断结果。仅当调用 fit 方法时 inference 不为 None 时可用。

参数
  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

  • T0 ((m, d_t) matrix 或 vector of length m, default 0) – 每个样本的基准处理变量

  • T1 ((m, d_t) matrix 或 vector of length m, default 1) – 每个样本的目标处理变量

返回

InferenceResults – 推断结果实例包含预测和预测标准误差,并且可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的数据框摘要。

返回类型

对象

effect_interval(X=None, *, T0=0, T1=1, alpha=0.05)

模型产生的量 \(\tau(X, T0, T1)\) 的置信区间。仅当调用 fit 方法时 inference 不为 None 时可用。

参数
  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

  • T0 ((m, d_t) matrix 或 vector of length m, default 0) – 每个样本的基准处理变量

  • T1 ((m, d_t) matrix 或 vector of length m, default 1) – 每个样本的目标处理变量

  • alpha (float in [0, 1], default 0.05) – 报告区间的总体置信水平。报告 alpha/2,1-alpha/2 置信区间。

返回

lower, upper – 每个量的置信区间的下限和上限。

返回类型

tuple( effect(X, T0, T1) 的类型, effect(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) matrix 或 vector of length n) – 每个样本的结果

  • T ((n × dₜ) matrix 或 vector of length n) – 每个样本的处理变量

  • X ((n × dₓ) matrix, optional) – 每个样本的特征,可选

  • W ((n × d_w) matrix, optional) – 每个样本的控制变量,可选

  • sample_weight ((n,) array_like 或 None) – 每个样本的个体权重。如果为 None,则假定权重相等。

  • groups ((n,) vector, optional) – 向量,可选。所有属于同一组的行在分割时将保持在一起。如果 groups 不为 None,则传递给此类初始化器的 cv 参数必须在其 split 方法中支持 'groups' 参数。

  • cache_values (bool, default False) – 是否缓存输入和第一阶段结果,这将允许重新拟合不同的最终模型

  • inference (str, Inference instance, 或 None) – 用于执行推断的方法。此估计器支持 'bootstrap'(或 BootstrapInference 的实例)和 'blb'(用于基于 Little-Bags Bootstrap 的推断)

返回类型

self

marginal_ate(T, X=None)

计算平均边际效应 \(E_{T, X}[\partial\tau(T, X)]\)

边际效应是围绕一个基准处理点计算,并对 X 总体取平均。

参数
  • T ((m, d_t) matrix) – 每个样本的基准处理变量

  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

返回

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) matrix) – 每个样本的基准处理变量

  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

返回

PopulationSummaryResults – 推断结果实例包含预测和预测标准误差,并且可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的数据框摘要。

返回类型

对象

marginal_ate_interval(T, X=None, *, alpha=0.05)

模型产生的量 \(E_{T,X}[\partial \tau(T, X)]\) 的置信区间。仅当调用 fit 方法时 inference 不为 None 时可用。

参数
  • T ((m, d_t) matrix) – 每个样本的基准处理变量

  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

  • alpha (float in [0, 1], default 0.05) – 报告区间的总体置信水平。报告 alpha/2,1-alpha/2 置信区间。

返回

lower, upper – 每个量的置信区间的下限和上限。

返回类型

tuple( marginal_ate(T, X) 的类型, marginal_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) matrix) – 每个样本的基准处理变量

  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

返回

grad_tau – 每个样本在每个结果上的异质边际效应。请注意,当 Y 或 T 是向量而不是二维数组时,输出中相应的单维将折叠(例如,如果两者都是向量,则此方法的输出也将是向量)

返回类型

(m, d_y, d_t) 数组

marginal_effect_inference(T, X=None)

模型产生的量 \(\partial \tau(T, X)\) 的推断结果。仅当调用 fit 方法时 inference 不为 None 时可用。

参数
  • T ((m, d_t) matrix) – 每个样本的基准处理变量

  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

返回

InferenceResults – 推断结果实例包含预测和预测标准误差,并且可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的数据框摘要。

返回类型

对象

marginal_effect_interval(T, X=None, *, alpha=0.05)

模型产生的量 \(\partial \tau(T, X)\) 的置信区间。仅当调用 fit 方法时 inference 不为 None 时可用。

参数
  • T ((m, d_t) matrix) – 每个样本的基准处理变量

  • X ((m, d_x) matrix, optional) – 每个样本的特征,可选

  • alpha (float in [0, 1], default 0.05) – 报告区间的总体置信水平。报告 alpha/2,1-alpha/2 置信区间。

返回

lower, upper – 每个量的置信区间的下限和上限。

返回类型

tuple( marginal_effect(T, X) 的类型, marginal_effect(T, X) 的类型 )

model_cate(T=1)

获取拟合的最终 CATE 模型。

参数

T (alphanumeric) – 我们想要获取拟合的 CATE 模型的处理变量(字母数字)

返回

model_cate – model_final 对象的实例,在调用 fit 后拟合,对应于处理变量 T=t 相对于基准的 CATE 模型。仅当 multitask_model_final=False 时可用。

返回类型

model_final 类型的对象

multitask_model_cate()[source]

获取拟合的最终 CATE 模型。

返回

multitask_model_cate – model_final 对象的实例,在调用 fit 后拟合,其结果向量对应于每个处理变量相对于基准的 CATE 模型。仅当 multitask_model_final=True 时可用。

返回类型

model_final 类型的对象

refit_final(*, inference='auto')

使用新的最终模型规范但使用缓存的第一阶段结果重新估计反事实模型。

为了成功执行此操作,必须在调用 fit 时将 cache_values 设置为 True。此调用只会重新拟合最终模型。此调用将使用更改最终阶段估计的任何参数的当前设置。如果更改了第一阶段干扰项估计方式的任何参数也已更改,则不会产生影响。您需要再次调用 fit 来更改第一阶段估计结果。

参数

inference (推断方法, optional) – 表示推断方法的字符串或对象

返回

self – 此实例

返回类型

对象

score(Y, T, X=None, W=None, sample_weight=None)

在新数据集上对拟合的 CATE 模型进行评分。根据拟合时创建的残差干扰项模型为新数据集生成干扰项参数。它使用不同交叉拟合折叠拟合的模型的平均预测。然后计算最终残差 Y 对残差 T 回归的 MSE。

如果 model_final 没有 score 方法,则会引发 AttributeError

参数
  • Y ((n,) vector of length n) – 每个样本的结果向量

  • T ((n,) vector of length n) – 每个样本的处理变量向量

  • X ((n, d_x) matrix, optional) – 每个样本的特征,可选

  • W ((n, d_w) matrix, optional) – 每个样本的控制变量,可选

  • sample_weight ((n,) vector, optional) – 每个样本的权重,可选

返回

score – 最终 CATE 模型在新数据上的 MSE。

返回类型

float

shap_values(X, *, feature_names=None, treatment_names=None, output_names=None, background_samples=100)

最终阶段模型 (const_marginal_effect) 的 Shap 值

参数
  • X ((m, d_x) matrix) – 每个样本的特征。形状应与最终阶段拟合的 X 相同。

  • feature_names (list of str of length X.shape[1], optional) – 输入特征的名称列表。

  • treatment_names (list, optional) – 特征化处理变量的名称。在离散处理变量场景中,名称不应包含基准处理变量的名称(即控制处理变量,默认情况下是按字母顺序较小的那个)

  • output_names (list, optional) – 结果的名称。

  • background_samples (int , default 100) – 用于计算基准效应的样本数,默认 100。如果为 None,则使用所有样本。

返回

shap_outs – 一个嵌套字典,使用每个输出名称(例如,当 output_names=None 时为 'Y0', 'Y1', ...)和每个处理名称(例如,当 treatment_names=None 时为 'T0', 'T1', ...)作为键,shap_values 解释对象作为值。如果拟合时的输入数据也包含元数据(例如,是 pandas 数据框),则使用处理变量、结果和特征的列元数据,而不是上述默认值(除非用户通过显式传递相应的名称进行覆盖)。

返回类型

Explanation 对象的嵌套字典

property dowhy

获取 DoWhyWrapper 实例,以允许使用 dowhy 包的其他功能(例如因果图、反驳测试等)。

返回

DoWhyWrapperDoWhyWrapper 的实例

返回类型

实例

property featurizer_

获取拟合的特征提取器。

返回

featurizer – 拟合的特征提取器实例,用于在最终 CATE 模型训练中预处理 X。仅当 featurizer 不为 None 且 X 不为 None 时可用。

返回类型

featurizer 类型的对象

property models_propensity

获取拟合的倾向性模型。

返回

models_propensitymodel_propensity 对象的嵌套列表。子列表的数量等于 Monte Carlo 迭代次数,子列表中的每个元素对应于一个交叉拟合折叠,并且是该训练折叠所拟合的模型实例。

返回类型

model_propensity 类型的对象的嵌套列表

property models_regression

获取拟合的回归模型。

返回

model_regression – model_regression 对象的嵌套列表。子列表的数量等于 Monte Carlo 迭代次数,子列表中的每个元素对应于一个交叉拟合折叠,并且是该训练折叠所拟合的模型实例。

返回类型

model_regression 类型的对象的嵌套列表

property nuisance_scores_propensity

获取倾向性模型在样本外训练数据上的评分

property nuisance_scores_regression

获取回归模型在样本外训练数据上的评分