dsepTest function

Test for d-separation in a DAG

Test for d-separation in a DAG

Tests for d-separation of nodes in a DAG. dsepTest() is written to be easily used in skeleton, pc, fci.

dsepTest(x, y, S=NULL, suffStat)

Arguments

  • x,y: (integer) position of variable XX and YY, respectively, in the adjacency matrix.

  • S: (integer) positions of zero or more conditioning variables in the adjacency matrix.

  • suffStat: a list with two elements,

    • "g": Containing the Directed Acyclic Graph (object of class "graph", see graph-class from the package graph), and
    • "jp": Containing the shortest path distance matrix for all pairs of nodes as computed by johnson.all.pairs.sp from package RBGL.

Returns

If x and y are d-separated by S in DAG G the result is 1, otherwise it is 0. This is analogous to the p-value of an ideal (without sampling error) conditional independence test on any distribution that is faithful to the DAG G.

Details

The function is based on dsep. For details on d-separation see the reference Lauritzen (2004).

References

S.L. Lauritzen (2004), Graphical Models, Oxford University Press.

See Also

dsepAMTest for a similar function for MAGs. gaussCItest, disCItest and binCItest for similar functions for a conditional independence test for gaussian, discrete and binary variables, respectively.

Author(s)

Markus Kalisch (kalisch@stat.math.ethz.ch )

Examples

p <- 8 set.seed(45) myDAG <- randomDAG(p, prob = 0.3) if (require(Rgraphviz)) { ## plot the DAG plot(myDAG, main = "randomDAG(10, prob = 0.2)") } ## define sufficient statistics (d-separation oracle) suffStat <- list(g = myDAG, jp = RBGL::johnson.all.pairs.sp(myDAG)) dsepTest(1,6, S= NULL, suffStat) ## not d-separated dsepTest(1,6, S= 3, suffStat) ## not d-separated by node 3 dsepTest(1,6, S= c(3,4),suffStat) ## d-separated by node 3 and 4