View source: R/frontend-nodes.R
| misc utilities | R Documentation |
Assign or extract various quantities of interest from an object of class
bn of bn.fit.
## nodes
mb(x, node)
nbr(x, node, max.dist = 1)
parents(x, node)
parents(x, node, debug = FALSE) <- value
children(x, node)
children(x, node, debug = FALSE) <- value
spouses(x, node)
ancestors(x, node)
descendants(x, node)
in.degree(x, node)
out.degree(x, node)
root.nodes(x)
leaf.nodes(x)
isolated.nodes(x)
nnodes(x)
## arcs
arcs(x)
arcs(x, check.cycles = TRUE, check.illegal = TRUE, debug = FALSE) <- value
directed.arcs(x)
undirected.arcs(x)
incoming.arcs(x, node)
outgoing.arcs(x, node)
incident.arcs(x, node)
compelled.arcs(x)
reversible.arcs(x)
narcs(x)
## adjacency matrix
amat(x)
amat(x, check.cycles = TRUE, check.illegal = TRUE, debug = FALSE) <- value
## arc list
alst(x)
alst(x, check.cycles = TRUE, check.illegal = TRUE, debug = FALSE) <- value
## graphs
nparams(x, data, estimator = NULL, debug = FALSE)
ntests(x)
## shared with the graph package.
# these used to be a simple nodes(x) function.
## S4 method for signature 'bn'
nodes(object)
## S4 method for signature 'bn.fit'
nodes(object)
# these used to be a simple degree(x, node) function.
## S4 method for signature 'bn'
degree(object, Nodes)
## S4 method for signature 'bn.fit'
degree(object, Nodes)
x, object |
an object of class |
node, Nodes |
a character string, the label of a node. |
max.dist |
a positive integer, the maximum number of arcs (distance) from the node at the center of the neighbourhood. |
value |
either a vector of character strings (for |
data |
a data frame containing the data the Bayesian network was learned
from. It's only needed if |
estimator |
a character string, the parameter estimator that will be used
to fit the network; see |
check.cycles |
a boolean value. If |
check.illegal |
a boolean value. If |
debug |
a boolean value. If |
The number of parameters of a discrete Bayesian network is defined as the sum of the number of logically independent parameters of each node given its parents (Chickering, 1995).
For Gaussian Bayesian networks, the distribution of each node can be viewed as a linear regression, so it has a number of parameters equal to the number of the node's parents plus one (the intercept), as per Neapolitan (2003).
For conditional linear Gaussian networks, the number of parameters of
discrete and Gaussian nodes is as above. The number of parameters of
conditional Gaussian nodes is equal to 1 plus the number of
continuous parents (who get one regression coefficient each, plus the
intercept) times the number of configurations of the discrete parents (each
configuration has an associated regression model).
For zero-inflated networks, the number of parameters of each node is equal to twice the number of parents plus three. They correspond to the set of regression coefficients of the zero-inflation component, that of the counts component, and the shape parameter (the dispersion in the hyper-Poisson, the number of failures in the negative binomial).
Both Gaussian and zero-inflated networks are learned from numeric data, so the
number of parameters of the continuous nodes is ambiguous. The
estimator argument selects which parametric assumption is used to count
them; by default it is the estimator implied by the type of the data (which
amounts to the Gaussian parametrisation for numeric data).
bnlearn implements arc lists (equivalently adjacency lists) as a list
with one element per node. Elements are named after the nodes in x, and
contain a character vector holding the labels of the children of that node.
Undirected arcs are treated as if they were bi-directed, so each node is
listed as the other's child.
mb(), nbr(), nodes(), parents(),
children(), spouses(), ancestors(), descendants(),
root.nodes(), leaf.nodes() and isolated.nodes() return a
vector of character strings.
arcs(), directed.arcs(), undirected.arcs(),
incoming.arcs(), outgoing.arcs(), incident.arcs(),
compelled.arcs(), reversible.arcs(), return a matrix of two
columns of character strings.
narcs() and nnodes() return the number of arcs and nodes in the
graph, respectively.
amat() returns a matrix of 0/1 integer values.
alst() returns a list of character vectors.
degree(), in.degree(), out.degree(), nparams() and
ntests() return an integer.
Marco Scutari
Chickering DM (1995). "A Transformational Characterization of Equivalent Bayesian Network Structures." Proceedings of the Eleventh Annual Conference on Uncertainty in Artificial Intelligence, 87–98.
Neapolitan RE (2003). Learning Bayesian Networks. Prentice Hall.
data(learning.test)
cpdag = pc.stable(learning.test)
## the Markov blanket of A.
mb(cpdag, "A")
## the neighbourhood of F.
nbr(cpdag, "F")
## the arcs in the graph.
arcs(cpdag)
## the nodes of the graph.
nodes(cpdag)
## the adjacency matrix for the nodes of the graph.
amat(cpdag)
## the adjacency list of a graph.
alst(cpdag)
## the parents of D.
parents(cpdag, "D")
## the children of A.
children(cpdag, "A")
## the root nodes of the graph.
root.nodes(cpdag)
## the leaf nodes of the graph.
leaf.nodes(cpdag)
## number of parameters of the Bayesian network.
dag = set.arc(cpdag, "A", "B")
nparams(dag, learning.test)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.