dowhy.api 包#
子模块#
dowhy.api.causal_data_frame 模块#
- class dowhy.api.causal_data_frame.CausalAccessor(pandas_obj)[source]#
基类:
object
pandas.DataFrame 在 causal 命名空间下的访问器。
- 参数:
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)[source]#
通过抽样实现的 do 操作。这将返回一个 pandas.DataFrame,其中的结果变量被 P(Y|do(X=x)) 的样本替换。
如果 x 的值未指定(例如作为字符串或列表),则 x 的原始值保留在 DataFrame 中,并且从相应的 P(Y|do(x)) 中抽取 Y 的样本。如果 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 方法。
- 参数:
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 操作是无状态的。
- 返回:
pandas.DataFrame: 包含采样结果的 DataFrame