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)