dowhy.api 包#
子模块#
dowhy.api.causal_data_frame 模块#
- class dowhy.api.causal_data_frame.CausalAccessor(pandas_obj)[source]#
基础类:
object一个用于causal命名空间下的pandas.DataFrame的访问器。
- Parameters:
pandas_obj –
- convert_to_custom_type(input_type)[source]#
此函数将DataFrame类型转换为dowhy内部使用的自定义类型。 我们使用以下映射 int -> ‘c’ float -> ‘c’ binary -> ‘b’ category -> ‘d’ 目前我们尚未添加对时间的支持。 :param input_type: str: DataFrame中列的数据类型
- do(x, method='weighting', num_cores=1, variable_types={}, outcome=None, params=None, graph: DiGraph | None = None, common_causes=None, estimand_type=EstimandType.NONPARAMETRIC_ATE, stateful=False)[来源]#
使用采样实现的do操作。这将返回一个pandas.DataFrame,其中结果变量被替换为来自P(Y|do(X=x))的样本。
如果x的值未指定(例如作为字符串或列表),则x的原始值保留在DataFrame中,并且Y从其相应的P(Y|do(x))中采样。如果x的值被指定(通过dict传递,其中变量名是键,值被指定),则新的DataFrame将包含指定的x值。
对于某些方法,必须指定variable_types字段。它应该是一个dict,其中键是变量名,值对于有序离散变量为‘o’,对于无序离散变量为‘u’,对于离散变量为‘d’,或对于连续变量为‘c’。
推断需要一组控制变量。这些可以通过使用common_causes显式提供,其中包含要控制的变量名称列表。也可以通过指定一个因果图dot_graph来隐式提供,从中将使用默认的识别方法选择它们。
当无法通过提供的假设识别控制变量集时,将向用户提示是否继续。要自动覆盖提示,您可以将标志proceed_when_unidentifiable设置为True。
一些方法在推理过程中构建组件,这些组件非常昂贵。为了保留这些组件以供后续推理使用(例如,使用不同的x值连续调用do),您可以将stateful标志设置为True。在使用do操作时,请谨慎使用状态。状态是在命名空间上设置的,而不是在方法上,因此可能会表现出不可预测的行为。要重置命名空间并再次以无状态方式运行,您可以调用reset方法。
- Parameters:
x – str, list, dict: 要干预的因果状态,以及(可选的)其干预值。
method – 与采样器一起使用的推理方法。目前支持 ‘mcmc’、‘weighting’ 和 ‘kernel_density’。mcmc 采样器需要 pymc3>=3.7。
num_cores – int: 如果推理方法仅支持一次采样一个点,这将并行化采样。
variable_types – dict: 包含变量类型的字典。必须包含因果状态、控制变量和结果的联合。
outcome – str: 结果变量。
params – dict: 额外的参数,设置为采样器对象上的属性
dot_graph – str: 一个指定因果图的字符串。
common_causes – list: 一个包含要控制的变量名称的字符串列表。
estimand_type – str: 目前仅支持‘nonparametric-ate’。未来可能会添加其他类型,以支持特定的参数估计。
proceed_when_unidentifiable – bool: 一个标志,用于在提供的假设下无法识别效果时覆盖用户提示以继续。
stateful – bool: 是否保留状态。默认情况下,do操作是无状态的。
- Returns:
pandas.DataFrame: 包含抽样结果的DataFrame