dowhy.causal_identifier 包#

子模块#

dowhy.causal_identifier.auto_identifier 模块#

class dowhy.causal_identifier.auto_identifier.AutoIdentifier(estimand_type: EstimandType, backdoor_adjustment: BackdoorAdjustment = BackdoorAdjustment.BACKDOOR_DEFAULT, optimize_backdoor: bool = False, costs: List | None = None)[源代码]#

基础类:object

实现不同识别方法的类。

目前支持后门和工具变量识别方法。识别基于提供的因果图。

该类用于与CausalModel的向后兼容 未来将被弃用,转而支持函数调用auto_identify_effect()

identify_backdoor(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], observed_nodes: List[str], include_unobserved: bool = False, dseparation_algo: str = 'default', direct_effect: bool = False)[source]#
identify_effect(graph: DiGraph, action_nodes: str | List[str], outcome_nodes: str | List[str], observed_nodes: str | List[str], conditional_node_names: List[str] | None = None)[source]#
class dowhy.causal_identifier.auto_identifier.BackdoorAdjustment(value)[来源]#

基础类:Enum

一个枚举。

BACKDOOR_DEFAULT = 'default'#
BACKDOOR_EFFICIENT = 'efficient-adjustment'#
BACKDOOR_EXHAUSTIVE = 'exhaustive-search'#
BACKDOOR_MAX = 'maximal-adjustment'#
BACKDOOR_MIN = 'minimal-adjustment'#
BACKDOOR_MINCOST_EFFICIENT = 'efficient-mincost-adjustment'#
BACKDOOR_MIN_EFFICIENT = 'efficient-minimal-adjustment'#
class dowhy.causal_identifier.auto_identifier.EstimandType(value)[source]#

基础类:Enum

一个枚举。

NONPARAMETRIC_ATE = 'nonparametric-ate'#
NONPARAMETRIC_CDE = 'nonparametric-cde'#
NONPARAMETRIC_NDE = 'nonparametric-nde'#
NONPARAMETRIC_NIE = 'nonparametric-nie'#
dowhy.causal_identifier.auto_identifier.build_backdoor_estimands_dict(treatment_names: List[str], outcome_names: List[str], observed_nodes: List[str], backdoor_sets: List[str], estimands_dict: Dict)[source]#

如果需要,通过过滤未观察到的变量来构建后门集的最终字典。

dowhy.causal_identifier.auto_identifier.construct_backdoor_estimand(treatment_name: List[str], outcome_name: List[str], common_causes: List[str])[source]#
dowhy.causal_identifier.auto_identifier.construct_frontdoor_estimand(treatment_name: List[str], outcome_name: List[str], frontdoor_variables_names: List[str])[source]#
dowhy.causal_identifier.auto_identifier.construct_iv_estimand(treatment_name: List[str], outcome_name: List[str], instrument_names: List[str])[source]#
dowhy.causal_identifier.auto_identifier.construct_mediation_estimand(estimand_type: EstimandType, action_nodes: List[str], outcome_nodes: List[str], mediator_nodes: List[str])[source]#
dowhy.causal_identifier.auto_identifier.find_valid_adjustment_sets(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], observed_nodes: List[str], backdoor_paths: List, bdoor_graph: DiGraph, dseparation_algo: str, backdoor_sets: List, filt_eligible_variables: List, backdoor_adjustment: BackdoorAdjustment, max_iterations: int)[来源]#
dowhy.causal_identifier.auto_identifier.get_default_backdoor_set_id(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], backdoor_sets_dict: Dict)[source]#
dowhy.causal_identifier.auto_identifier.identify_ate_effect(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], observed_nodes: List[str], backdoor_adjustment: BackdoorAdjustment, optimize_backdoor: bool, estimand_type: EstimandType, costs: List, conditional_node_names: List[str] | None = None)[source]#
dowhy.causal_identifier.auto_identifier.identify_backdoor(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], observed_nodes: List[str], backdoor_adjustment: BackdoorAdjustment, include_unobserved: bool = False, dseparation_algo: str = 'default', direct_effect: bool = False)[source]#
dowhy.causal_identifier.auto_identifier.identify_cde_effect(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], observed_nodes: List[str], backdoor_adjustment: BackdoorAdjustment, estimand_type: EstimandType)[source]#

识别受控直接效应。有关定义,请参见Vanderwheele (2011)。 受控直接和中介效应:定义、识别和界限。 https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4193506/

使用do-calculus规则,识别产生一个调整集。 它基于的原则是,在一个图中,从治疗到结果的直接边被移除后,对调整集进行条件化应该能够d-分离治疗和结果。

dowhy.causal_identifier.auto_identifier.identify_effect_auto(graph: DiGraph, action_nodes: str | List[str], outcome_nodes: str | List[str], observed_nodes: str | List[str], estimand_type: EstimandType, conditional_node_names: List[str] | None = None, backdoor_adjustment: BackdoorAdjustment = BackdoorAdjustment.BACKDOOR_DEFAULT, optimize_backdoor: bool = False, costs: List | None = None) IdentifiedEstimand[source]#

返回已识别的估计量的主要方法(如果存在)。

如果estimand_type是非参数ATE,则使用后门、工具变量和前门识别方法,基于因果图检查是否存在可识别的estimand。

Parameters:
  • optimize_backdoor – 如果为True,使用优化算法计算后门集

  • costs – 与图中变量相关的非负成本。仅用于

对于estimand_type='non-parametric-ate'和backdoor_adjustment='efficient-mincost-adjustment'。如果用户没有提供成本,并且backdoor_adjustment='efficient-mincost-adjustment',则假定图中所有变量的成本都为一。 :param conditional_node_names: 用于确定治疗的变量。如果没有提供,则假定干预是静态的。 :returns: 目标估计量,IdentifiedEstimand类的一个实例

dowhy.causal_identifier.auto_identifier.identify_efficient_backdoor(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], observed_nodes: List[str], backdoor_adjustment: BackdoorAdjustment, costs: List, conditional_node_names: List[str] | None = None)[source]#

实现算法以计算高效后门集的方法,如Rotnitzky和Smucler(2020)、Smucler、Sapienza和Rotnitzky(2021)以及Smucler和Rotnitzky(2022)所述。

对于backdoor_adjustment='efficient-adjustment',计算一个最优的后门集,即由可观测变量组成的后门集,该后门集产生的干预均值的非参数估计量在基于可观测后门集的估计量中具有最小的渐近方差。当没有潜在变量时,这个最优后门集总是存在,并且算法在这种情况下保证能够计算它。在具有潜在变量的非参数图模型下,这样的后门集可能不存在。当已知某些充分条件不满足时,会引发错误。

对于backdoor_adjustment=’efficient-minimal-adjustment’,计算一个最优的最小后门集, 即一个由可观测变量组成的最小后门集,该集在基于可观测最小后门集的干预均值非参数估计中, 具有最小的渐近方差。

对于backdoor_adjustment=’efficient-mincost-adjustment’,计算一个最优的最小成本后门集,即一个由可观测变量组成的最小成本后门集,该后门集产生的干预均值的非参数估计器在基于可观测最小成本后门集的估计器中具有最小的渐近方差。后门集的成本定义为组成它的变量的成本之和。

通过此方法计算的各种最优后门集不仅在非参数图形模型和非参数干预均值估计器下是最优的,而且在线性图形模型和OLS估计器下也是最优的,根据Henckel、Perkovic和Maathuis(2020)的结果。

Parameters:

成本 – 一个与图中变量相关的非负成本列表。仅用于

对于 estimatand_type='non-parametric-ate' 和 backdoor_adjustment='efficient-mincost-adjustment'。如果用户没有提供成本,并且 backdoor_adjustment='efficient-mincost-adjustment',则假设图中所有变量的成本都为一。列表的结构应为 [(node, {"cost": x}) for node in nodes] 的形式。 :param conditional_node_names: 用于确定处理的变量。如果没有提供,则假设干预将处理设置为常数。 :returns: backdoor_sets,一个字典列表,每个字典的值都是一个后门集。

dowhy.causal_identifier.auto_identifier.identify_frontdoor(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], observed_nodes: List[str], dseparation_algo: str = 'default')[source]#

如果存在,找到一个有效的前门变量集。

dowhy.causal_identifier.auto_identifier.identify_mediation(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str])[source]#

如果存在,请找到一个有效的调解器。

目前仅支持单一变量中介集。

dowhy.causal_identifier.auto_identifier.identify_mediation_first_stage_confounders(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], mediator_nodes: List[str], observed_nodes: List[str], backdoor_adjustment: BackdoorAdjustment)[source]#
dowhy.causal_identifier.auto_identifier.identify_mediation_second_stage_confounders(graph: DiGraph, action_nodes: List[str], mediator_nodes: List[str], outcome_nodes: List[str], observed_nodes: List[str], backdoor_adjustment: BackdoorAdjustment)[来源]#
dowhy.causal_identifier.auto_identifier.identify_nde_effect(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], observed_nodes: List[str], backdoor_adjustment: BackdoorAdjustment, estimand_type: EstimandType)[source]#
dowhy.causal_identifier.auto_identifier.identify_nie_effect(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], observed_nodes: List[str], backdoor_adjustment: BackdoorAdjustment, estimand_type: EstimandType)[source]#

dowhy.causal_identifier.backdoor 模块#

class dowhy.causal_identifier.backdoor.Backdoor(graph, nodes1, nodes2)[source]#

基础类:object

用于在源节点和目标节点之间优化实现后门变量搜索的类。

get_backdoor_vars()[source]#

获取每组节点对的后门变量集合以进行条件设置。

Returns:

每组包含与给定节点对对应的后门变量的集合列表。

is_backdoor(path)[source]#

检查路径是否为后门路径。

Parameters:

path – 包含路径的节点列表。

class dowhy.causal_identifier.backdoor.HittingSetAlgorithm(list_of_sets, colliders={})[source]#

基础类:object

用于获取近似最小后门变量集的Hitting Set算法类,以便为每个节点对进行条件设置。

Parameters:

list_of_sets – 集合列表,其中每个集合包含表示源节点和目标节点之间的单个后门路径的节点。

find_set()[source]#

找到近似最小的节点集,使得在list_of_sets中的每个集合中至少有一个节点。

Returns:

近似的节点最小集合。

num_sets()[source]#

获取节点对之间的后门路径数量。

class dowhy.causal_identifier.backdoor.NodePair(node1, node2)[source]#

基础类:object

用于存储两个节点之间的后门变量的数据结构。

get_condition_vars()[source]#
is_complete()[source]#
set_complete()[source]#
update(path, condition_vars=None)[source]#
class dowhy.causal_identifier.backdoor.Path[source]#

基础类:object

用于存储两个节点之间特定路径的数据结构。

get_condition_vars()[来源]#
is_blocked()[源代码]#
update(path, is_blocked)[source]#

路径是一个列表

dowhy.causal_identifier.efficient_backdoor 模块#

class dowhy.causal_identifier.efficient_backdoor.EfficientBackdoor(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], observed_nodes: List[str], conditional_node_names=None, costs=None)[source]#

基础类:object

实现用于寻找最优(高效)后门集的方法。

Parameters:
  • graph – nx.DiGraph 一个因果图。

  • costs – 列表 一个与图中变量相关联的非负成本列表。仅用于 estimand_type=’non-parametric-ate’ 和 method_name=’efficient-mincost-adjustment’。如果 用户未提供成本,并且 method_name=’efficient-mincost-adjustment’,则假定图中所有变量的成本 均为一。列表的结构应为 [(node, {“cost”: x}) for node in nodes] 的形式。

  • conditional_node_names – list 一个包含用于确定治疗的变量列表。如果没有提供,则假设干预将治疗设置为常数。

ancestors_all(nodes)[source]#

计算一组节点的所有祖先集合的方法。 一个节点总是它自己的祖先。

Parameters:

nodes – 列表 图中的节点列表。

Returns ancestors:

集合 节点集合中节点的祖先节点集合。

backdoor_graph(G)[source]#
Method to compute the proper back-door graph associated with

治疗和结果。

Parameters:

G – nx.DiGraph 一个有向无环图。

Returns Gbd:

nx.DiGraph G的适当后门图。

build_D()[source]#

返回与处理、结果、条件和可观察变量相关的D流网络。如果一个节点没有‘cost’属性,此函数将假设成本为无穷大。

请参阅Smucler和Rotnitzky(2022年)在《因果推断杂志》上发表的论文,了解此流网络的完整定义。

Returns D:

nx.DiGraph D流网络。

build_H0()[source]#

返回与治疗、结果、条件和可观察变量相关的H0图。有关此图的完整定义,请参见Smucler、Sapienza和Rotnitzky(2021)在Biometrika中的文章。

Returns H0:

nx.Graph H0图。

build_H1()[source]#

返回与治疗、结果、条件和可观察变量相关的H1图。有关此图的完整定义,请参见Smucler、Sapienza和Rotnitzky(2021)在Biometrika中的文章。

Returns H1:

nx.Graph H1图。

causal_vertices()[source]#
Method to compute the set of all vertices that lie in a causal path

在治疗和结果之间。

Returns causal_vertices:

集合 一个集合,其顶点位于处理与结果之间的某些因果路径上。

compute_smallest_mincut()[source]#

返回与处理、结果、条件和可观察变量相关的流网络D中的最小割,该最小割包含在任何其他最小割中。

Returns S_c:

集合 具有上述属性的最小割。

forbidden()[source]#
Method to compute the forbidden set with respect to treatment and

结果。

Returns forbidden:

set 禁止的集合。

h_operator(S)[source]#

给定流网络D中的一组顶点S,返回操作符h(S),即无向图H1中的一组顶点。

有关此运算符的完整定义,请参见Smucler和Rotnitzky(2022)在《因果推断杂志》上的文章。

Parameters:

S – 集合 在流网络D中与处理、结果、条件和可观察变量相关联的一组顶点。

Returns Z:

集合 通过将h运算符应用于S得到的集合。

ignore()[source]#
Method to compute the set of ignorable vertices with respect to

治疗、结果、条件和可观察变量。 用于构建H0和H1图。有关此集合的完整定义,请参见Smucler、Sapienza和Rotnitzky(2021),Biometrika。

Returns ignore:

set 可忽略的顶点集合。

optimal_adj_set()[source]#

返回关于治疗、结果、条件和可观测变量的最优调整集。

如果Smucler、Sapienza和Rotnitzky(2021年)在《Biometrika》中概述的最优调整集存在的充分条件不成立,则会引发错误。

Returns:

最优:集合 最优调整集合。

optimal_mincost_adj_set()[source]#

返回关于治疗、结果、条件和可观测变量的最优最小成本调整集。

请注意,当成本恒定时,这是在最小基数调整集中的最优调整集。

Returns:

optimal_mincost: set 最优最小成本调整集。

optimal_minimal_adj_set()[source]#

返回关于治疗、结果、条件和可观测变量的最优最小调整集。

Returns:

optimal_minimal: set 最优最小调整集。

unblocked(H, Z)[source]#

计算关于治疗的Z的无阻塞集的方法。 有关此集合的完整定义,请参见Smucler、Sapienza和Rotnitzky(2021),Biometrika。

Params H:

nx.Graph 一个无向图。

Parameters:

Z – 列表 一个包含图H中节点的列表。

Returns unblocked:

集合 未阻塞的集合。

dowhy.causal_identifier.id_identifier 模块#

class dowhy.causal_identifier.id_identifier.IDExpression[source]#

基础类:object

用于存储因果估计量的类,这是使用ID算法进行识别步骤的结果。 该对象存储了一系列估计器(self._product),必须获取这些估计器的乘积,以及一系列变量(self._sum),必须对这些变量进行边缘化处理。

add_product(element: Dict | IDExpression)[源代码]#

将估算器添加到产品列表中。

Parameters:

element – 要附加到产品列表的估计器。

add_sum(element: Set)[source]#

向列表中添加变量。

Parameters:

element – 要附加到列表 self._sum 的变量集合。

get_val(return_type: str)[source]#

获取估计器列表(用于产品)或变量列表(用于边缘化)。

Parameters:

return_type – “prod” 返回估计器列表或 “sum” 返回变量列表。

class dowhy.causal_identifier.id_identifier.IDIdentifier[source]#

基础类:object

此类用于与CausalModel的向后兼容性 未来将被弃用,转而支持函数调用id_identify_effect()

identify_effect(graph: DiGraph, action_nodes: str | List[str], outcome_nodes: str | List[str], observed_nodes: str | List[str])[source]#
dowhy.causal_identifier.id_identifier.identify_effect_id(graph: DiGraph, action_nodes: str | List[str], outcome_nodes: str | List[str]) IDExpression[source]#

ID算法的实现。 链接 - https://ftp.cs.ucla.edu/pub/stat_ser/shpitser-thesis.pdf 伪代码已在第40页提供。

Parameters:

treatment_names – 包含处理变量名称的有序集合。

:param outcome_names: 包含结果变量名称的有序集合。

Returns:

目标估计量,IDExpression类的一个实例。

dowhy.causal_identifier.identified_estimand 模块#

class dowhy.causal_identifier.identified_estimand.IdentifiedEstimand(identifier, treatment_variable, outcome_variable, estimand_type=None, estimands=None, backdoor_variables=None, instrumental_variables=None, frontdoor_variables=None, mediator_variables=None, mediation_first_stage_confounders=None, mediation_second_stage_confounders=None, default_backdoor_id=None, identifier_method=None, no_directed_path=False)[来源]#

基础类:object

用于存储因果估计量的类,通常是识别步骤的结果。

get_backdoor_variables(key: str | None = None)[source]#

返回包含后门变量的列表。

如果调用的估计器方法是后门方法,则返回与其目标估计量对应的后门变量。否则,返回默认后门估计量的后门变量。

get_frontdoor_variables()[source]#

返回包含前门变量(如果存在)的列表

get_instrumental_variables()[source]#

返回包含工具变量(如果存在)的列表

get_mediator_variables()[来源]#

返回包含中介变量(如果存在)的列表

set_backdoor_variables(bdoor_variables_arr: List, key: str | None = None)[source]#
set_identifier_method(identifier_name: str)[来源]#

dowhy.causal_identifier.identify_effect 模块#

class dowhy.causal_identifier.identify_effect.CausalIdentifier(*args, **kwargs)[source]#

基础类:Protocol

定义CausalIdentifier的协议,所有CausalIdentifiers必须至少符合此方法列表。

该类用于与CausalModel的向后兼容 未来将被弃用,转而支持函数调用auto_identify_effect()

identify_effect(graph: DiGraph, action_nodes: str | List[str], outcome_nodes: str | List[str], **kwargs)[源代码]#

基于因果图识别要估计的因果效应 :param graph: 要分析的因果图 :param action_nodes: 处理的名称 :param outcome_nodes: 结果的名称 :param **kwargs: 特定CausalIdentifier的identify_effect所需的额外参数 例如:AutoIdentifier中的conditional_node_names或IDIdentifier中的node_names :returns: 如果识别出因果效应,则返回一个概率表达式(estimand),否则返回NULL

dowhy.causal_identifier.identify_effect.identify_effect(graph: DiGraph, action_nodes: str | List[str], outcome_nodes: str | List[str], observed_nodes: str | List[str]) IdentifiedEstimand[源代码]#

基于因果图识别要估计的因果效应

Parameters:
  • graph – 要分析的因果图

  • treatment – 治疗名称

  • outcome – 结果名称

Returns:

如果已识别,则为因果效应的概率表达式(estimand),否则为NULL

模块内容#

class dowhy.causal_identifier.AutoIdentifier(estimand_type: EstimandType, backdoor_adjustment: BackdoorAdjustment = BackdoorAdjustment.BACKDOOR_DEFAULT, optimize_backdoor: bool = False, costs: List | None = None)[源代码]#

基础类:object

实现不同识别方法的类。

目前支持后门和工具变量识别方法。识别基于提供的因果图。

该类用于与CausalModel的向后兼容 未来将被弃用,转而支持函数调用auto_identify_effect()

identify_backdoor(graph: DiGraph, action_nodes: List[str], outcome_nodes: List[str], observed_nodes: List[str], include_unobserved: bool = False, dseparation_algo: str = 'default', direct_effect: bool = False)[source]#
identify_effect(graph: DiGraph, action_nodes: str | List[str], outcome_nodes: str | List[str], observed_nodes: str | List[str], conditional_node_names: List[str] | None = None)[source]#
class dowhy.causal_identifier.BackdoorAdjustment(value)[来源]#

基础类:Enum

一个枚举。

BACKDOOR_DEFAULT = 'default'#
BACKDOOR_EFFICIENT = 'efficient-adjustment'#
BACKDOOR_EXHAUSTIVE = 'exhaustive-search'#
BACKDOOR_MAX = 'maximal-adjustment'#
BACKDOOR_MIN = 'minimal-adjustment'#
BACKDOOR_MINCOST_EFFICIENT = 'efficient-mincost-adjustment'#
BACKDOOR_MIN_EFFICIENT = 'efficient-minimal-adjustment'#
class dowhy.causal_identifier.EstimandType(value)[source]#

基础类:Enum

一个枚举。

NONPARAMETRIC_ATE = 'nonparametric-ate'#
NONPARAMETRIC_CDE = 'nonparametric-cde'#
NONPARAMETRIC_NDE = 'nonparametric-nde'#
NONPARAMETRIC_NIE = 'nonparametric-nie'#
class dowhy.causal_identifier.IDIdentifier[source]#

基础类:object

此类用于与CausalModel的向后兼容性 未来将被弃用,转而支持函数调用id_identify_effect()

identify_effect(graph: DiGraph, action_nodes: str | List[str], outcome_nodes: str | List[str], observed_nodes: str | List[str])[source]#
class dowhy.causal_identifier.IdentifiedEstimand(identifier, treatment_variable, outcome_variable, estimand_type=None, estimands=None, backdoor_variables=None, instrumental_variables=None, frontdoor_variables=None, mediator_variables=None, mediation_first_stage_confounders=None, mediation_second_stage_confounders=None, default_backdoor_id=None, identifier_method=None, no_directed_path=False)[来源]#

基础类:object

用于存储因果估计量的类,通常是识别步骤的结果。

get_backdoor_variables(key: str | None = None)[source]#

返回包含后门变量的列表。

如果调用的估计器方法是后门方法,则返回与其目标估计量对应的后门变量。否则,返回默认后门估计量的后门变量。

get_frontdoor_variables()[source]#

返回包含前门变量(如果存在)的列表

get_instrumental_variables()[source]#

返回包含工具变量(如果存在)的列表

get_mediator_variables()[来源]#

返回包含中介变量(如果存在)的列表

set_backdoor_variables(bdoor_variables_arr: List, key: str | None = None)[source]#
set_identifier_method(identifier_name: str)[来源]#
dowhy.causal_identifier.construct_backdoor_estimand(treatment_name: List[str], outcome_name: List[str], common_causes: List[str])[source]#
dowhy.causal_identifier.construct_frontdoor_estimand(treatment_name: List[str], outcome_name: List[str], frontdoor_variables_names: List[str])[source]#
dowhy.causal_identifier.construct_iv_estimand(treatment_name: List[str], outcome_name: List[str], instrument_names: List[str])[source]#
dowhy.causal_identifier.identify_effect(graph: DiGraph, action_nodes: str | List[str], outcome_nodes: str | List[str], observed_nodes: str | List[str]) IdentifiedEstimand[源代码]#

基于因果图识别要估计的因果效应

Parameters:
  • graph – 要分析的因果图

  • treatment – 治疗名称

  • outcome – 结果名称

Returns:

如果已识别,则为因果效应的概率表达式(estimand),否则为NULL

dowhy.causal_identifier.identify_effect_auto(graph: DiGraph, action_nodes: str | List[str], outcome_nodes: str | List[str], observed_nodes: str | List[str], estimand_type: EstimandType, conditional_node_names: List[str] | None = None, backdoor_adjustment: BackdoorAdjustment = BackdoorAdjustment.BACKDOOR_DEFAULT, optimize_backdoor: bool = False, costs: List | None = None) IdentifiedEstimand[source]#

返回已识别的估计量的主要方法(如果存在)。

如果estimand_type是非参数ATE,则使用后门、工具变量和前门识别方法,基于因果图检查是否存在可识别的estimand。

Parameters:
  • optimize_backdoor – 如果为True,使用优化算法计算后门集

  • costs – 与图中变量相关的非负成本。仅用于

对于estimand_type='non-parametric-ate'和backdoor_adjustment='efficient-mincost-adjustment'。如果用户没有提供成本,并且backdoor_adjustment='efficient-mincost-adjustment',则假定图中所有变量的成本都为一。 :param conditional_node_names: 用于确定治疗的变量。如果没有提供,则假定干预是静态的。 :returns: 目标估计量,IdentifiedEstimand类的一个实例

dowhy.causal_identifier.identify_effect_id(graph: DiGraph, action_nodes: str | List[str], outcome_nodes: str | List[str]) IDExpression[source]#

ID算法的实现。 链接 - https://ftp.cs.ucla.edu/pub/stat_ser/shpitser-thesis.pdf 伪代码已在第40页提供。

Parameters:

treatment_names – 包含处理变量名称的有序集合。

:param outcome_names: 包含结果变量名称的有序集合。

Returns:

目标估计量,IDExpression类的一个实例。