cpdag {bnlearn} | R Documentation

## Equivalence classes, moral graphs and consistent extensions

### Description

Find the equivalence class and the v-structures of a Bayesian network, construct its moral graph, or create a consistent extension of an equivalent class.

### Usage

    cpdag(x, moral = TRUE, wlbl = FALSE, debug = FALSE)
    cextend(x, strict = TRUE, debug = FALSE)
    vstructs(x, arcs = FALSE, moral = FALSE, debug = FALSE)
    moral(x, debug = FALSE)

### Arguments

`x` | an object of class `bn` or `bn.fit` (with the exception of `cextend`, which only accepts objects of class `bn`).
`arcs` | a boolean value. If `TRUE` the arcs that are part of at least one v-structure are returned instead of the v-structures themselves.
`moral` | a boolean value. If `FALSE` we define a v-structure as in Pearl (2000); if `TRUE`, as in Koller and Friedman (2009). See below.
`wlbl` | a boolean value. If `TRUE` arcs whose directions have been fixed by a whitelist or a by blacklist are preserved when constructing the CPDAG.
`strict` | a boolean value. If no consistent extension is possible and `strict` is `TRUE`, an error is generated; otherwise a partially extended graph is returned with a warning.
`debug` | a boolean value. If `TRUE` a lot of debugging output is printed; otherwise the function is completely silent.

### Details

What kind of arc configuration is called a v-structure is not uniquely defined in literature. The original definition from Pearl (2000), which is still followed by most texts and papers, states that the two parents in the v-structure must not be connected by an arc. However, Koller and Friedman (2009) call that a immoral v-structure and call a moral v-structure a v-structure in which the parents are linked by an arc. This mirrors the unshielded versus shielded collider naming convention, but it is confusing.

Setting `moral` to `TRUE` in `cpdag()` and `vstructs()` makes those functions follow the definition from Koller and Friedman (2009); the default value of `FALSE`, on the other hand, makes those functions follow the definition from Pearl (2000). The former call v-structures both shielded and unshielded colliders (respectively moral v-structures and immoral v-structures); the latter requires v-structures to be unshielded colliders. Hence, the `moral` argument controls whether moral v-structures (shielded colliders) are returned along with immoral v-structures (unshielded collides).

Note that arcs whose directions are dictated by the parametric assumptions of conditional linear Gaussian networks are preserved as directed arcs in `cpdag()`.

### Value

`cpdag()` returns an object of class `bn`, representing the equivalence class. `moral` on the other hand returns the moral graph. See `bn-class` for details.

`cextend()` returns an object of class `bn`, representing a DAG that is the consistent extension of `x`.

`vstructs()` returns a matrix with either 2 or 3 columns, according to the value of the `arcs` argument.

### Author(s)

Marco Scutari

### References

Dor D (1992). A Simple Algorithm to Construct a Consistent Extension of a Partially Oriented Graph. UCLA, Cognitive Systems Laboratory.

Koller D, Friedman N (2009). Probabilistic Graphical Models: Principles and Techniques. MIT Press.

Pearl J (2009). Causality: Models, Reasoning and Inference. Cambridge University Press, 2nd edition.

### Examples

    data(learning.test)
    res = gs(learning.test)
    cpdag(res)
    vstructs(res)

[Package bnlearn version 4.5 Index]