Skip to contents

Two conditions: no member of Z descends from the treatment, and Z blocks every path from treatment to outcome starting with an arrow INTO the treatment. The second is checked by d-separation in the graph with arrows out of the treatment deleted, using Bayes-ball reachability – conditioning blocks chains and forks but OPENS colliders, and that asymmetry is the whole algorithm.

Usage

morie_is_backdoor_admissible(adj, treatment, outcome, Z)

Arguments

adj

Logical adjacency matrix; adj[i, j] means i -> j.

treatment, outcome

Node indices (1-based).

Z

Candidate adjustment set.

Value

TRUE or FALSE.

References

Pearl J (2009) Causality, 2nd ed., Sec 3.3.

Examples

A <- matrix(FALSE, 3, 3)
morie_is_backdoor_admissible(A, 2, 3, integer(0))
#> [1] TRUE