Learn R Programming

pcalg (version 1.1-4)

pdag2dag: Extend a Partially Directed Acyclic Graph (PDAG) to a DAG

Description

This function extends a PDAG to a DAG, if this is possible.

Usage

pdag2dag(g,keepVstruct=TRUE)

Arguments

g
input PDAG (graph object)
keepVstruct
If TRUE, the v-structures in g are kept. Otherwise they are ignored and an arbitrary extension is generated.

Value

  • List with two entries: "graph" contains a consistent DAG extension (graph object) and "success" is TRUE iff the extension was possible.

Details

Direct undirected edges without creating directed cycles or additional v-structures. The PDAG is consistently extended to a DAG using the algorithm by Dor and Tarsi (1992). If no extension is possible, a DAG corresponding to the skeleton of the PDAG is generated and a warning message is produced.

References

D.Dor, M.Tarsi (1992). A simple algorithm to construct a consistent extension of a partially oriented graph. Technicial Report R-185, Cognitive Systems Laboratory, UCLA

Examples

Run this code
p <- 10 # number of random variables
n <- 10000 # number of samples
s <- 0.4 # sparsness of the graph

## generate random data
set.seed(42)
g <- randomDAG(p,s) # generate a random DAG
d <- rmvDAG(n,g) # generate random samples

gSkel <- pcAlgo(d,alpha=0.05) # estimate of the skeleton

gPDAG <- udag2pdag(gSkel)

gDAG <- pdag2dag(gPDAG@graph)

Run the code above in your browser using DataLab