causal inference | R Documentation |
Perform interventions and counterfactuals, using Bayesian networks as causal models.
# network transformations used in causal inference.
mutilated(x, evidence)
twin(x)
# causal inference types.
intervention(x, evidence)
counterfactual(x, evidence, merging = TRUE)
x |
an object of class |
evidence |
a list, in the same format as the evidence for likelihood
weighting (see |
merging |
a boolean value. If |
mutilated()
constructs the mutilated network arising from an ideal
intervention setting the nodes involved to the values specified by
evidence
.
twin()
constructs the twin network required to compute counterfactuals,
separating noise (exogenous) from functional (factual) nodes and adding
counterfactual nodes.
intervention()
is an alias of mutilated()
.
counterfactual()
constructs the twin network and introduces a
counterfactual (that is, an intervention on the counterfactual nodes) before
applying node merging (optional). The intervention in evidence
is
specified using the labels of the nodes in x
, and is then applied to
the corresponding counterfactual nodes.
Both twin()
and counterfactual()
label nodes as follows:
a counterfactual node has the label of the correspoding factual node
with a period appended (as in paste0(label, ".")
).
a noise node has the label of the corresponding factual node with a
"u"
prepended (as in paste0("u", label)
).
A bn
or bn.fit
object, depending on the class of x
.
Marco Scutari
Balke A, Pearl J (2022). "Probabilistic Evaluation of Counterfactual Queries." Probabilistic and Causal Inference: The Works of Judea Pearl, 237–254. The original is in the Proceddings of AAAI, 1994.
Graham D, Lee CM, Perov Y (2019). "Copy, Paste, Infer: A Robust Analysis of Twin Networks for Counterfactual Inference." NeurIPS19 CausalML workshop.
Koller D, Friedman N (2009). Probabilistic Graphical Models: Principles and Techniques. MIT Press.
Shpitser I, PearlJ (2007). "What counterfactuals can be tested." Proceedings of the 23rd Conference on Uncertainty in Artificial Intelligence (UAI), 352–359.
# example from Graham, Lee and Perov.
dag = model2network("[C][A|C][B|C][D|A:B]")
intervention(dag, evidence = list(A = 0))
twin(dag)
counterfactual(dag, evidence = list(A = 0), merging = FALSE)
counterfactual(dag, evidence = list(A = 0), merging = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.