aux.effect {causaleffect} R Documentation

## Identify a causal effect using surrogate experiments

### Description

This function returns an expression for the joint distribution of the set of variables (`y`) given the intervention on the set of variables (`x`) using auxiliary experiments on a set (`z`) if the effect is identifiable. Otherwise an error is thrown describing the graphical structure that witnesses non-identifiability.

### Usage

```aux.effect(y, x, z, G, expr = TRUE, simp = TRUE,
steps = FALSE, primes = FALSE, stop_on_nonid = TRUE)```

### Arguments

 `y` A character vector of variables of interest given the intervention. `x` A character vector of the variables that are acted upon. `z` A character vector describing the additional set available for manipulation. `G` An `igraph` object describing the directed acyclic graph induced by the causal model that matches the internal syntax. `expr` A logical value. If `TRUE`, a string is returned describing the expression in LaTeX syntax. Else, a list structure is returned which can be manually parsed by the function `get.expression` `simp` A logical value. If `TRUE`, a simplification procedure is applied to the resulting probability object. d-separation and the rules of do-calculus are applied repeatedly to simplify the expression. `steps` A logical value. If `TRUE`, returns a list where the first element corresponds to the expression of the causal effect and the second to the a list describing intermediary steps taken by the algorithm. `primes` A logical value. If `TRUE`, prime symbols are appended to summation variables to make them distinct from their other instantiations. `stop_on_nonid` A logical value. If `TRUE`, an error is produced when a non-identifiable effect is discovered. Otherwise recursion continues normally.

### Value

If `steps = FALSE`, A character string or an object of class `probability` that describes the interventional distribution. Otherwise, a list as described in the arguments.

Santtu Tikka

### References

Bareinboim E., Pearl J. 2012 Causal Inference by Surrogate Experiments: z-identifiability. Proceedings of the 28th Conference on Uncertainty in Artificial Intelligence, 113–120.

`parse.graphml`, `get.expression`

### Examples

```library(igraph)

# simplify = FALSE to allow multiple edges
f <- graph.formula(W -+ Z, Z -+ X, X -+ Y, W -+ Y, # Observed edges
W -+ Y, Y -+ W, Z -+ Y, Y -+ Z, Z -+ X, X -+ Z, simplify = FALSE)

# Here the bidirected edges are set to be unobserved in graph g
# This is denoted by giving them a description attribute with the value "U"
# The first 4 edges correspond to the observed edges, the rest are unobserved

f <- set.edge.attribute(f, "description", 5:10, "U")
aux.effect(y = "Y", x = "X", z = "Z", G = f)
```

[Package causaleffect version 1.3.13 Index]