dowhy.causal_estimators 包#

子模块#

dowhy.causal_estimators.causalml 模块#

class dowhy.causal_estimators.causalml.Causalml(identified_estimand: IdentifiedEstimand, causalml_estimator: _CausalmlEstimator | str, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, **kwargs)[source]#

基础类:CausalEstimator

用于causalml库中估计器的包装类。

支持如下列出的附加参数。关于每个估计器的具体参数,请参考CausalML文档。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • causalml_methodname – causalml估计器类的完全限定名称。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。所有估计器都支持 test_significance=”bootstrap”,该方法使用自举法估计所获得估计值的 p 值。个别估计器可以覆盖此设置以支持自定义测试方法。自举法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用自举法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举方法估计置信区间。自举方法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举方法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • kwargs – (可选)额外的估计器特定参数

construct_symbolic_estimator(estimand)[source]#
estimate_effect(data: DataFrame, treatment_value: Any = 1, control_value: Any = 0, target_units=None, **_)[来源]#

数据:包含需要估计治疗效果的数据的数据框。 treatment_value:需要估计效果的处理变量的值。 control_value:表示处理变量缺失的值(通常为0)。 target_units:需要估计治疗效果的单元。

它可以是一个包含效果修饰符值的DataFrame,并且效果将仅针对此新数据进行估计。 它也可以是一个lambda函数,可以用作数据(pandas DataFrame)的索引来选择所需的行。

fit(data: DataFrame, effect_modifier_names: List[str] | None = None)[source]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param treatment: 处理变量的名称 :param outcome: 结果变量的名称 :param effect_modifiers: 用于计算单独效果的变量

效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。

dowhy.causal_estimators.distance_matching_estimator 模块#

class dowhy.causal_estimators.distance_matching_estimator.DistanceMatchingEstimator(identified_estimand: IdentifiedEstimand, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, num_matches_per_unit: int = 1, distance_metric: str = 'minkowski', **kwargs)[source]#

基础类:CausalEstimator

基于距离度量的二元处理的简单匹配估计器。

支持如下所列的附加参数。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。 所有估计器都支持 test_significance=”bootstrap”,该方法使用引导方法估计所获得估计值的 p 值。 个别估计器可以覆盖此设置以支持自定义测试方法。 引导方法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。 如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用引导方法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举法估计置信区间。自举法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • num_matches_per_unit – 每个数据点的匹配数量。 默认值=1。

  • distance_metric – 使用的距离度量。默认值为“minkowski”,对应于p=2时的欧几里得距离度量。

  • kwargs – (可选)额外的估计器特定参数

Valid_Dist_Metric_Params = ['p', 'V', 'VI', 'w']#
construct_symbolic_estimator(estimand)[来源]#
estimate_effect(data: DataFrame, treatment_value: Any = 1, control_value: Any = 0, target_units=None, **_)[source]#
fit(data: DataFrame, effect_modifier_names: List[str] | None = None, exact_match_cols=None)[source]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param treatment: 处理变量的名称 :param outcome: 结果变量的名称 :param exact_match_cols: 需要精确匹配的列名列表。通常用于具有离散值的列。 :param effect_modifiers: 用于计算单独效果的变量

效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。

dowhy.causal_estimators.econml 模块#

class dowhy.causal_estimators.econml.Econml(identified_estimand: IdentifiedEstimand, econml_estimator: _EconmlEstimator | str, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, **kwargs)[source]#

基础类:CausalEstimator

EconML库中估计器的包装类。

支持如下所列的额外参数。关于每个估计器的初始化和拟合参数,请参考EconML文档。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • econml_estimator – econml估计器类的实例。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。所有估计器都支持 test_significance=”bootstrap”,该方法使用自举法估计所获得估计值的 p 值。个别估计器可以覆盖此设置以支持自定义测试方法。自举法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用自举法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举方法估计置信区间。自举方法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举方法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • kwargs – (可选)额外的估计器特定参数

apply_multitreatment(df: DataFrame, fun: Callable, *args, **kwargs)[source]#
construct_symbolic_estimator(estimand)[source]#
effect(df: DataFrame, *args, **kwargs) ndarray[来源]#

点估计治疗效果, 输出形状为 n_units x n_treatment_values(不包括对照组) :param df: 要评估的单位特征 :param args: 传递给底层估计器 :param kwargs: 传递给底层估计器

effect_inference(df: DataFrame, *args, **kwargs)[source]#

由基础EconML估计器产生的不确定性结果 :param df: 要评估的单元特征 :param args: 传递给基础估计器 :param kwargs: 传递给基础估计器

effect_interval(df: DataFrame, *args, **kwargs) ndarray[来源]#

估计治疗效果的逐点置信区间 :param df: 要评估的单位的特征 :param args: 传递给底层估计器 :param kwargs: 传递给底层估计器

effect_tt(df: DataFrame, treatment_value, *args, **kwargs)[source]#

应用于每个单位的实际处理效果 (“处理对处理者的影响”) :param df: 要评估的单位特征 :param args: 传递给estimator.effect() :param kwargs: 传递给estimator.effect()

estimate_effect(data: DataFrame, treatment_value: Any = 1, control_value: Any = 0, target_units=None, **_)[source]#

数据:包含需要估计治疗效果的数据的数据框。 treatment_value:需要估计效果的处理变量的值。它可以是(可选地)处理变量不同值的序列。 control_value:表示处理变量缺失的值(通常为0)。 target_units:需要估计治疗效果的单元。

它可以是一个包含效果修饰符值的DataFrame,并且效果将仅针对此新数据进行估计。 它也可以是一个lambda函数,可以用作数据(pandas DataFrame)的索引来选择所需的行。

fit(data: DataFrame, effect_modifier_names: List[str] | None = None, **kwargs)[source]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param treatment: 处理变量的名称 :param outcome: 结果变量的名称 :param effect_modifiers: 用于计算单独效果的变量

效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。

shap_values(df: DataFrame, *args, **kwargs)[来源]#

dowhy.causal_estimators.generalized_linear_model_estimator 模块#

class dowhy.causal_estimators.generalized_linear_model_estimator.GeneralizedLinearModelEstimator(identified_estimand: IdentifiedEstimand, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, glm_family: Any | None = None, predict_score: bool = True, **kwargs)[source]#

基础类:RegressionEstimator

使用广义线性模型(如逻辑回归)计算治疗效果。

实现使用statsmodels.api.GLM。 需要在method_params中指定一个额外的参数“glm_family”。该参数的值可以是任何有效的statsmodels.api家族对象。例如,要使用逻辑回归,请将“glm_family”指定为statsmodels.api.families.Binomial()。

有关参数和关键字的列表,请参阅 CausalEstimator的文档。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。所有估计器都支持 test_significance=”bootstrap”,该方法使用自举法估计所获得估计值的 p 值。个别估计器可以覆盖此设置以支持自定义测试方法。自举法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用自举法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举方法估计置信区间。自举方法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举方法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • glm_family – 用于广义线性模型的statsmodels家族。 例如,使用statsmodels.api.families.Binomial()进行逻辑回归, 或使用statsmodels.api.families.Poisson()处理计数数据。

  • predict_score – 对于具有二进制输出的模型,是否输出模型的分数或基于分数的二进制输出。

  • kwargs – (可选)额外的估计器特定参数

construct_symbolic_estimator(estimand)[来源]#
fit(data: DataFrame, effect_modifier_names: List[str] | None = None)[source]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param treatment: 处理变量的名称 :param outcome: 结果变量的名称 :param effect_modifiers: 用于计算单独效果的变量

效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。

predict_fn(data: DataFrame, model, features)[来源]#

dowhy.causal_estimators.instrumental_variable_estimator 模块#

class dowhy.causal_estimators.instrumental_variable_estimator.InstrumentalVariableEstimator(identified_estimand: IdentifiedEstimand, iv_instrument_name: List | Dict | str | None = None, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, **kwargs)[source]#

基础类:CausalEstimator

使用工具变量方法计算治疗效果。

这也是一个可以被其他特定方法继承的超类。

支持如下所列的附加参数。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • iv_instrument_name – 要使用的特定工具变量的名称。需要是识别步骤中确定的IV之一。默认是使用识别步骤中的所有IV变量。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。所有估计器都支持 test_significance=”bootstrap”,该方法使用自举法估计所获得估计值的 p 值。个别估计器可以覆盖此设置以支持自定义测试方法。自举法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用自举法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举方法估计置信区间。自举方法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举方法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • kwargs – (可选)额外的估计器特定参数

construct_symbolic_estimator(estimand)[来源]#
estimate_effect(data: DataFrame, treatment_value: Any = 1, control_value: Any = 0, target_units=None, **_)[source]#

数据:包含需要估计治疗效果的数据的数据框。 treatment_value:需要估计效果的处理变量的值。 control_value:表示处理变量缺失的值(通常为0)。 target_units:需要估计治疗效果的单元。

它可以是一个包含效果修饰符值的DataFrame,并且效果将仅针对此新数据进行估计。 它也可以是一个lambda函数,可以用作数据(pandas DataFrame)的索引来选择所需的行。

fit(data: DataFrame, effect_modifier_names: List[str] | None = None)[source]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param treatment: 处理变量的名称 :param outcome: 结果变量的名称 :param effect_modifiers: 用于计算单独效果的变量

效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。

dowhy.causal_estimators.linear_regression_estimator 模块#

class dowhy.causal_estimators.linear_regression_estimator.LinearRegressionEstimator(identified_estimand: IdentifiedEstimand, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, **kwargs)[来源]#

基础类:RegressionEstimator

使用线性回归计算治疗效果。

拟合一个回归模型,用于使用治疗和混杂因素估计结果。对于单变量治疗,治疗效果等同于治疗变量的系数。

展示一种能够处理多种治疗和异质性的因果推理方法的简单实现。需要强假设所有从(T, W)到Y的关系都是线性的。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。所有估计器都支持 test_significance=”bootstrap”,该方法使用自举法估计所获得估计值的 p 值。个别估计器可以覆盖此设置以支持自定义测试方法。自举法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用自举法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举方法估计置信区间。自举方法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举方法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • kwargs – (可选)额外的估计器特定参数

construct_symbolic_estimator(estimand)[source]#
fit(data: DataFrame, effect_modifier_names: List[str] | None = None)[source]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param treatment: 处理变量的名称 :param outcome: 结果变量的名称 :param effect_modifiers: 用于计算单独效果的变量

效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。

predict_fn(data, model, features)[source]#

dowhy.causal_estimators.propensity_score_estimator 模块#

class dowhy.causal_estimators.propensity_score_estimator.PropensityScoreEstimator(identified_estimand: IdentifiedEstimand, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, propensity_score_model: Any | None = None, propensity_score_column: str = 'propensity_score', **kwargs)[来源]#

基础类:CausalEstimator

基于治疗分配倾向估计效果的估计器的基础类。

支持如下所列的附加参数。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。所有估计器都支持 test_significance=”bootstrap”,该方法使用自举法估计所获得估计值的 p 值。个别估计器可以覆盖此设置以支持自定义测试方法。自举法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用自举法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举方法估计置信区间。自举方法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举方法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • propensity_score_model – 用于计算倾向得分的模型。 可以是任何支持 fit() 和 predict_proba() 方法的分类模型。如果为 None,则使用 LogisticRegression。

  • propensity_score_column – 存储倾向得分的列名。默认值为’propensity_score’

  • kwargs – (可选)额外的估计器特定参数

construct_symbolic_estimator(estimand)[来源]#

一个符号字符串,传达每个估计器的作用。 例如,线性回归表示为 y ~ bx + e

estimate_propensity_score_column(data)[source]#
fit(data: DataFrame, effect_modifier_names: List[str] | None = None)[来源]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param effect_modifiers: 用于计算单独效果的变量

效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。

dowhy.causal_estimators.propensity_score_matching_estimator 模块#

class dowhy.causal_estimators.propensity_score_matching_estimator.PropensityScoreMatchingEstimator(identified_estimand: IdentifiedEstimand, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, propensity_score_model: Any | None = None, propensity_score_column: str = 'propensity_score', **kwargs)[来源]#

基础类:PropensityScoreEstimator

通过基于倾向得分找到匹配的处理和对照单位来估计治疗效果。

直接应用后门准则。

支持如下所列的附加参数。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。所有估计器都支持 test_significance=”bootstrap”,该方法使用自举法估计所获得估计值的 p 值。个别估计器可以覆盖此设置以支持自定义测试方法。自举法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用自举法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举方法估计置信区间。自举方法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举方法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • propensity_score_model – 用于计算倾向得分的模型。 可以是任何支持 fit() 和 predict_proba() 方法的分类模型。如果为 None,则使用 LogisticRegression。

  • propensity_score_column – 存储倾向得分的列名。默认值为’propensity_score’

  • kwargs – (可选)额外的估计器特定参数

construct_symbolic_estimator(estimand)[来源]#

一个符号字符串,传达每个估计器的作用。 例如,线性回归表示为 y ~ bx + e

estimate_effect(data: DataFrame, treatment_value: Any = 1, control_value: Any = 0, target_units=None, **_)[source]#
fit(data: DataFrame, effect_modifier_names: List[str] | None = None)[来源]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param treatment: 处理变量的名称 :param outcome: 结果变量的名称 :param effect_modifiers: 用于计算单独效果的变量

效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。

dowhy.causal_estimators.propensity_score_stratification_estimator 模块#

class dowhy.causal_estimators.propensity_score_stratification_estimator.PropensityScoreStratificationEstimator(identified_estimand: IdentifiedEstimand, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, num_strata: str | int = 'auto', clipping_threshold: int = 10, propensity_score_model: Any | None = None, propensity_score_column: str = 'propensity_score', **kwargs)[来源]#

基础类:PropensityScoreEstimator

通过将数据分层到具有相同共同原因的区间来估计治疗效果。

直接应用后门准则。

支持如下所列的附加参数。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。所有估计器都支持 test_significance=”bootstrap”,该方法使用自举法估计所获得估计值的 p 值。个别估计器可以覆盖此设置以支持自定义测试方法。自举法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用自举法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举方法估计置信区间。自举方法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举方法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • num_strata – 数据将分层的箱数。 默认情况下自动确定。

  • clipping_threshold – 每个层中处理或控制单元的最小数量。默认值=10

  • propensity_score_model – 用于计算倾向得分的模型。可以是任何支持 fit() 和 predict_proba() 方法的分类模型。如果为 None,则默认使用 LogisticRegression 模型。

  • propensity_score_column – 存储倾向得分的列名

分数。默认='propensity_score' :param kwargs: (可选) 额外的估计器特定参数

construct_symbolic_estimator(estimand)[来源]#

一个符号字符串,传达每个估计器的作用。 例如,线性回归表示为 y ~ bx + e

estimate_effect(data: DataFrame, treatment_value: Any = 1, control_value: Any = 0, target_units=None, **_)[来源]#
fit(data: DataFrame, effect_modifier_names: List[str] | None = None)[来源]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param treatment: 处理变量的名称 :param outcome: 结果变量的名称 :param effect_modifiers: 用于计算单独效果的变量

效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。

dowhy.causal_estimators.propensity_score_weighting_estimator 模块#

class dowhy.causal_estimators.propensity_score_weighting_estimator.PropensityScoreWeightingEstimator(identified_estimand: IdentifiedEstimand, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, min_ps_score: float = 0.05, max_ps_score: float = 0.95, weighting_scheme: str = 'ips_weight', propensity_score_model: Any | None = None, propensity_score_column: str = 'propensity_score', **kwargs)[来源]#

基础类:PropensityScoreEstimator

通过按发生概率的倒数加权数据来估计治疗效果。

直接应用后门准则。

支持如下所列的附加参数。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。所有估计器都支持 test_significance=”bootstrap”,该方法使用自举法估计所获得估计值的 p 值。个别估计器可以覆盖此设置以支持自定义测试方法。自举法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用自举法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举方法估计置信区间。自举方法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举方法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • min_ps_score – 用于裁剪倾向得分下限。默认值=0.05

  • max_ps_score – 用于裁剪倾向得分的上限。 默认值=0.95

  • weighting_scheme – 使用的加权方法。可以是逆倾向得分(“ips_weight”,默认值)、稳定化IPS得分(“ips_stabilized_weight”)或归一化IPS得分(“ips_normalized_weight”)。

  • propensity_score_model – 用于计算倾向得分的模型。可以是任何支持 fit() 和 predict_proba() 方法的分类模型。如果为 None,则默认使用 LogisticRegression 模型。默认值为 None

  • propensity_score_column – 存储倾向得分的列名。默认值为’propensity_score’

  • kwargs – (可选)额外的估计器特定参数

construct_symbolic_estimator(estimand)[source]#

一个符号字符串,传达每个估计器的作用。 例如,线性回归表示为 y ~ bx + e

estimate_effect(data: DataFrame, treatment_value: Any = 1, control_value: Any = 0, target_units=None, **_)[source]#
fit(data: DataFrame, effect_modifier_names: List[str] | None = None)[来源]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param treatment: 处理变量的名称 :param outcome: 结果变量的名称 :param effect_modifiers: 用于计算单独效果的变量

效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。

dowhy.causal_estimators.regression_discontinuity_estimator 模块#

class dowhy.causal_estimators.regression_discontinuity_estimator.RegressionDiscontinuityEstimator(identified_estimand: IdentifiedEstimand, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, rd_variable_name: str | None = None, rd_threshold_value: float | None = None, rd_bandwidth: float | None = None, **kwargs)[来源]#

基础类:CausalEstimator

使用回归不连续方法计算治疗效果。

通过将问题转化为工具变量问题来估计效果。

支持如下所列的附加参数。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。所有估计器都支持 test_significance=”bootstrap”,该方法使用自举法估计所获得估计值的 p 值。个别估计器可以覆盖此设置以支持自定义测试方法。自举法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用自举法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举方法估计置信区间。自举方法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举方法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • rd_variable_name – 发生断点的变量名称。这是工具变量。

  • rd_threshold_value – 发生不连续性的阈值。

  • rd_bandwidth – 从阈值开始的距离,在此距离内可以认为处理组和对照组之间的混杂因素是相同的。考虑的带宽是(阈值 +- 带宽)

  • kwargs – (可选)额外的估计器特定参数

construct_symbolic_estimator(estimand)[source]#
estimate_effect(data: DataFrame, treatment_value: Any = 1, control_value: Any = 0, target_units=None, **_)[source]#
fit(data: DataFrame, effect_modifier_names: List[str] | None = None)[source]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param treatment: 处理变量的名称 :param outcome: 结果变量的名称 :param effect_modifiers: 用于计算单独效果的变量

效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。

dowhy.causal_estimators.regression_estimator 模块#

class dowhy.causal_estimators.regression_estimator.RegressionEstimator(identified_estimand: IdentifiedEstimand, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, **kwargs)[源代码]#

基础类:CausalEstimator

使用一些回归函数计算治疗效果。

使用治疗和混杂因素拟合回归模型以估计结果。

所有回归模型的基类,由LinearRegressionEstimator和GeneralizedLinearModelEstimator继承。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。所有估计器都支持 test_significance=”bootstrap”,该方法使用自举法估计所获得估计值的 p 值。个别估计器可以覆盖此设置以支持自定义测试方法。自举法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用自举法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举方法估计置信区间。自举方法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举方法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • kwargs – (可选)额外的估计器特定参数

estimate_effect(data: DataFrame, treatment_value: Any = 1, control_value: Any = 0, target_units=None, need_conditional_estimates=None, **_)[来源]#
fit(data: DataFrame, effect_modifier_names: List[str] | None = None)[source]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param treatment: 处理变量的名称 :param outcome: 结果变量的名称 :param effect_modifiers: 用于计算单独效果的变量

效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。

interventional_outcomes(data_df: DataFrame, treatment_val)[source]#

对所有数据行应用干预treatment_val,然后使用self.model预测结果。如果data_df为None,将使用self._data代替。如果不存在模型,将创建一个模型。返回所有样本的结果,允许在反事实治疗场景中分析个体预测。 :param data_df: 包含数据的数据框 :param treatment_val: 治疗变量的值 :returns: 结果预测的列表。

predict(data_df)[来源]#

dowhy.causal_estimators.two_stage_regression_estimator 模块#

class dowhy.causal_estimators.two_stage_regression_estimator.TwoStageRegressionEstimator(identified_estimand: IdentifiedEstimand, test_significance: bool | str = False, evaluate_effect_strength: bool = False, confidence_intervals: bool = False, num_null_simulations: int = 1000, num_simulations: int = 399, sample_size_fraction: int = 1, confidence_level: float = 0.95, need_conditional_estimates: bool | str = 'auto', num_quantiles_to_discretize_cont_cols: int = 5, first_stage_model: CausalEstimator | Type[CausalEstimator] | None = None, second_stage_model: CausalEstimator | Type[CausalEstimator] | None = None, **kwargs)[来源]#

基础类:CausalEstimator

计算治疗效果,当效果完全由另一个变量(前门)中介时或当有可用工具时。

目前仅支持线性模型的效果。

支持如下所列的附加参数。

Parameters:
  • identified_estimand – 表示要估计的目标识别估计量的概率表达式。

  • test_significance – 二进制标志或字符串,指示是否测试显著性以及使用哪种方法。所有估计器都支持 test_significance=”bootstrap”,该方法使用自举法估计所获得估计值的 p 值。个别估计器可以覆盖此设置以支持自定义测试方法。自举法支持一个可选参数 num_null_simulations。如果为 False,则不进行测试。如果为 True,则使用自定义方法(如果可用)测试估计值的显著性,否则使用自举法。

  • evaluate_effect_strength – (实验性) 是否评估效果的强度

  • confidence_intervals – 二进制标志或字符串,指示是否应计算置信区间以及应使用哪种方法。所有方法都支持通过使用参数 confidence_intervals="bootstrap" 来使用自举方法估计置信区间。自举方法接受两个参数(num_simulations 和 sample_size_fraction),可以在 params 字典中可选地指定这些参数。估计器也可以覆盖此方法以实现其自己的置信区间方法。如果此参数为 False,则不计算置信区间。如果为 True,则通过估计器的特定方法(如果可用)计算置信区间,否则通过自举方法计算。

  • num_null_simulations – 用于测试估计器统计显著性的模拟次数

  • num_simulations – 用于估计置信区间(和/或标准误差)的模拟次数

  • sample_size_fraction – 用于引导估计器的样本大小

  • confidence_level – 置信区间估计的置信水平

  • need_conditional_estimates – 布尔标志,指示是否应计算条件估计。如果图中有效应修饰符,则默认为True

  • num_quantiles_to_discretize_cont_cols – 将数值效应修饰符分割成的分位数数量,以便能够估计其上的条件处理效应。

  • first_stage_model – 要使用的第一阶段估计器。默认为线性回归。

  • second_stage_model – 使用的第二阶段估计器。默认是线性回归。

  • kwargs – (可选)额外的估计器特定参数

DEFAULT_FIRST_STAGE_MODEL#

LinearRegressionEstimator 的别名

DEFAULT_SECOND_STAGE_MODEL#

LinearRegressionEstimator 的别名

build_first_stage_features(data_df: DataFrame)[source]#
construct_symbolic_estimator(first_stage_symbolic, second_stage_symbolic, total_effect_symbolic=None, estimand_type=None)[source]#
estimate_effect(data: DataFrame, treatment_value: Any = 1, control_value: Any = 0, target_units=None, **_)[source]#
fit(data: DataFrame, effect_modifier_names: List[str] | None = None, **_)[source]#

使用数据进行效果估计的估计器拟合 :param data: 包含数据的数据框 :param treatment: 处理变量的名称 :param outcome: 结果变量的名称 :param iv_instrument_name: 特定工具变量的名称

将被使用。需要是识别步骤中确定的IV之一。默认是使用识别步骤中的所有IV变量。

Parameters:

effect_modifiers – 用于计算单独效果的变量,或返回异质效果函数。目前并非所有方法都支持此功能。

模块内容#

dowhy.causal_estimators.get_class_object(method_name, estimator_name=None, *args, **kwargs)[source]#