ehrapy.tools.causal_inference

ehrapy.tools.causal_inference(adata, graph, treatment, outcome, estimation_method, refute_methods=None, print_causal_estimate=False, print_summary=True, return_as='estimate', show_graph=False, show_refute_plots=None, attempts=10, *, identify_kwargs=None, estimate_kwargs=None, refute_kwargs=None)[source]

Performs causal inference on an AnnData object using the specified causal model and returns a tuple containing the causal estimate and the results of any refutation tests.

Parameters:
  • adata – An AnnData object containing the input data.

  • graph – A str representing the causal graph to use.

  • treatment – A str representing the treatment variable in the causal graph.

  • outcome – A str representing the outcome variable in the causal graph.

  • estimation_method – An optional Literal specifying the estimation method to use. Defaults to “backdoor.propensity_score_stratification”.

  • refute_methods – An optional List of Literal specifying the methods to use for refutation tests. Defaults to [“placebo_treatment_refuter”, “random_common_cause”, “data_subset_refuter”].

  • print_causal_estimate – Whether to print the causal estimate or not, default is False.

  • print_summary – Whether to print the causal model summary or not, default is True.

  • return_as – An optional Literal specifying the type of output to return. Defaults to “summary”.

  • show_graph – Whether to display the graph or not, default is False.

  • show_refute_plots – Whether to display the refutation plots or not, default is False.

  • attempts – Number of attempts to try to generate a valid causal estimate, default is 10.

  • identify_kwargs – Optional keyword arguments for dowhy.CausalModel.identify_effect().

  • estimate_kwargs – Optional keyword arguments for dowhy.CausalModel.estimate_effect().

  • refute_kwargs – Optional keyword arguments for dowhy.CausalModel.refute_estimate().

Returns:

A tuple containing the causal estimate and a dictionary of the results of any refutation tests.

Raises:
  • TypeError – If adata, graph, treatment, outcome, refute_methods, estimation_method, or return_as is not of the expected type.

  • ValueError – If refute_methods or estimation_method contains an unknown value, or if return_as is an unknown value.

Examples

>>> data = dowhy.datasets.linear_dataset(
...     beta=10,
...     num_common_causes=5,
...     num_instruments=2,
...     num_samples=1000,
...     treatment_is_binary=True,
... )
>>> ci = ep.tl.causal_inference(
...     adata=anndata.AnnData(data["df"]),
...     graph=data["gml_graph"],
...     treatment="v0",
...     outcome="y",
...     estimation_method="backdoor.propensity_score_stratification",
... )
>>> estimate = ep.tl.causal_inference(
...     adata=ci.linear_data,
...     graph=ci.linear_graph,
...     treatment="treatment",
...     outcome="outcome",
...     estimation_method="backdoor.linear_regression",
...     return_as="estimate",
...     show_graph=True,
...     show_refute_plots=True,
... )
... ep.tl.plot_causal_effect(estimate)