causaleffect {BCDAG} | R Documentation |
Compute causal effects between variables
Description
This function computes the total joint causal effect on variable response
consequent to an intervention on variables targets
for a given a DAG structure and parameters (D,L)
Usage
causaleffect(targets, response, L, D)
Arguments
targets |
numerical vector with labels of target nodes |
response |
numerical label of response variable |
L |
|
D |
|
Details
We assume that the joint distribution of random variables X_1, \dots, X_q
is zero-mean Gaussian with covariance matrix Markov w.r.t. a Directed Acyclic Graph (DAG).
In addition, the allied Structural Equation Model (SEM) representation of a Gaussian DAG-model allows to express the covariance matrix as a function of the (Cholesky) parameters (D,L)
,
collecting the conditional variances and regression coefficients of the SEM.
The total causal effect on a given variable of interest (response
) consequent to a joint intervention on a set of variables (targets
)
is defined according to Pearl's do-calculus theory and under the Gaussian assumption can be expressed as a function of parameters (D,L)
.
Value
The joint total causal effect, represented as a vector of same length of targets
Author(s)
Federico Castelletti and Alessandro Mascaro
References
J. Pearl (2000). Causality: Models, Reasoning, and Inference. Cambridge University Press, Cambridge.
F. Castelletti and A. Mascaro (2021). Structural learning and estimation of joint causal effects among network-dependent variables. Statistical Methods and Applications, Advance publication.
P. Nandy, M.H. Maathuis and T. Richardson (2017). Estimating the effect of joint interventions from observational data in sparse high-dimensional settings. Annals of Statistics 45(2), 647-674.
Examples
# Randomly generate a DAG and the DAG-parameters
q = 8
w = 0.2
set.seed(123)
DAG = rDAG(q = q, w = w)
outDL = rDAGWishart(n = 1, DAG = DAG, a = q, U = diag(1, q))
L = outDL$L; D = outDL$D
# Total causal effect on node 1 of an intervention on {5,6}
causaleffect(targets = c(6,7), response = 1, L = L, D = D)
# Total causal effect on node 1 of an intervention on {5,7}
causaleffect(targets = c(5,7), response = 1, L = L, D = D)