Learn R Programming

pcalg (version 2.2-4)

dsepTest: Test for d-separation in a DAG

Description

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

Usage

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

Arguments

x,y
integer position of variable x and y in the adjacency matrix.
S
integer positions of conditioning variables in the adjacency matrix, possibly empty.
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.

Value

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

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

Examples

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

Run the code above in your browser using DataLab