econml.federated_learning.FederatedEstimator

econml.federated_learning.FederatedEstimator(estimators: List[econml.dml.dml.LinearDML])[source]

基类: econml._cate_estimator.TreatmentExpansionMixin, econml._cate_estimator.LinearCateEstimator

一个使用 LinearDML, LinearDRIV, 和 LinearDRLearner 估计器进行联邦学习的类。

参数

estimators (list of LinearDML, LinearDRIV, or LinearDRLearner) – 要聚合的估计器列表(必须是同一类型),这些估计器必须已经拟合完毕。

__init__(estimators: List[econml.dml.dml.LinearDML])[source]

方法

__init__(estimators)

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)]\) 的置信区间。仅当调用 fit 方法时,inference 不为 None 时可用。

bias_part_of_coef()

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)]\) 的推断结果。仅当调用 fit 方法时,inference 不为 None 时可用。

const_marginal_ate_interval([X, alpha])

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

const_marginal_effect([X])

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

const_marginal_effect_inference([X])

模型生成的量 \(\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(*args, **kwargs)

不应调用此方法;它仅为兼容 CATE 估计 API 而包含。

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 时可用。

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

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

属性

dowhy

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

transformer

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

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

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

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

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

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

返回

τ – 对每个结果的平均处理效应。请注意,当 Y 是向量而不是二维数组时,结果将是一个标量。

返回类型

float or (d_y,) array

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 or vector of length m, default 0) – 每个样本的基准处理

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

返回

PopulationSummaryResults – 推断结果实例包含预测值和预测标准误差,可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的 dataframe 汇总表。

返回类型

object

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 or vector of length m, default 0) – 每个样本的基准处理

  • T1 ((m, d_t) matrix or 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] or None) – 输入特征的名称。如果为 None 且 X 是一个 dataframe,则默认为 dataframe 的列名。

返回

out_feature_names – 返回特征名称。

返回类型

str 列表或 None

cate_output_names(output_names=None)

获取输出名称的公共接口。

由对输出应用转换的估计器重写。

参数

output_names (list of str of length Y.shape[1] or None) – 结果变量的名称。如果为 None 且传递给 fit 的 Y 是 dataframe,则默认为 dataframe 的列名。

返回

output_names – 返回输出名称。

返回类型

str 列表

cate_treatment_names(treatment_names=None)

获取处理名称。

如果处理变量是离散的或已进行特征化,它将返回展开的处理变量名称。

参数

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

返回

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

返回类型

str 列表

const_marginal_ate(X=None)

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

参数

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

返回

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) matrix, optional) – 每个样本的特征

返回

PopulationSummaryResults – 推断结果实例包含预测值和预测标准误差,可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的 dataframe 汇总表。

返回类型

object

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

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

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

参数

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

返回

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

返回类型

(m, d_y, d_f_t) 矩阵,如果 X 为 None,则为 (d_y, d_f_t) 矩阵,其中 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) matrix, optional) – 每个样本的特征

返回

InferenceResults – 推断结果实例包含预测值和预测标准误差,可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的 dataframe 汇总表。

返回类型

object

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 or vector of length m) – 每个样本的基准处理

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

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

返回

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

返回类型

(m, d_y) matrix

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 or vector of length m, default 0) – 每个样本的基准处理

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

返回

InferenceResults – 推断结果实例包含预测值和预测标准误差,可以按需计算置信区间、z 统计量和 p 值。它还可以输出这些推断结果的 dataframe 汇总表。

返回类型

object

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 or vector of length m, default 0) – 每个样本的基准处理

  • T1 ((m, d_t) matrix or 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(*args, **kwargs)[source]

不应调用此方法;它仅为兼容 CATE 估计 API 而包含。

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 值。它还可以输出这些推断结果的 dataframe 汇总表。

返回类型

object

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 值。它还可以输出这些推断结果的 dataframe 汇总表。

返回类型

object

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) 的值 )

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) – 用于计算基线效应的样本数量。如果为 None,则使用所有样本。

返回

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

返回类型

Explanation 对象的嵌套字典

property dowhy

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

返回

DoWhyWrapperDoWhyWrapper 的实例

返回类型

实例