Learn R Programming

causaleffect (version 1.3.15)

aux.effect: 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)

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.

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.

Author

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.

See Also

parse.graphml, get.expression

Examples

Run this code
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)

Run the code above in your browser using DataLab