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 – (可选)额外的估计器特定参数
- 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)的索引来选择所需的行。
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']#
- 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]#
基础类:
CausalEstimatorEconML库中估计器的包装类。
支持如下所列的额外参数。关于每个估计器的初始化和拟合参数,请参考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 – (可选)额外的估计器特定参数
- 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)的索引来选择所需的行。
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]#
-
使用广义线性模型(如逻辑回归)计算治疗效果。
实现使用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 – (可选)额外的估计器特定参数
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 – (可选)额外的估计器特定参数
- 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)的索引来选择所需的行。
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)[来源]#
-
使用线性回归计算治疗效果。
拟合一个回归模型,用于使用治疗和混杂因素估计结果。对于单变量治疗,治疗效果等同于治疗变量的系数。
展示一种能够处理多种治疗和异质性的因果推理方法的简单实现。需要强假设所有从(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 – (可选)额外的估计器特定参数
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 – (可选)额外的估计器特定参数
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)[来源]#
-
通过基于倾向得分找到匹配的处理和对照单位来估计治疗效果。
直接应用后门准则。
支持如下所列的附加参数。
- 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 – (可选)额外的估计器特定参数
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)[来源]#
-
通过将数据分层到具有相同共同原因的区间来估计治疗效果。
直接应用后门准则。
支持如下所列的附加参数。
- 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: (可选) 额外的估计器特定参数
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)[来源]#
-
通过按发生概率的倒数加权数据来估计治疗效果。
直接应用后门准则。
支持如下所列的附加参数。
- 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 – (可选)额外的估计器特定参数
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 – (可选)额外的估计器特定参数
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: 用于计算单独效果的变量
效果,或返回一个异质效果函数。目前并非所有方法都支持此功能。
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#
- DEFAULT_SECOND_STAGE_MODEL#
- 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 – 用于计算单独效果的变量,或返回异质效果函数。目前并非所有方法都支持此功能。