# strength of the arcs present in x.
arc.strength(x, data, criterion = NULL, ..., debug = FALSE)
# strength of all possible arcs, as learned from bootstrapped data.
boot.strength(data, cluster = NULL, R = 200, m = nrow(data),
algorithm, algorithm.args = list(), cpdag = TRUE, debug = FALSE)
# strength of all possible arcs, from a list of custom networks.
custom.strength(networks, nodes, weights = NULL, cpdag = TRUE, debug = FALSE)# averaged network structure.
averaged.network(strength, nodes, threshold)
bn.bn or arc
sets (matrices or data frames with two columns, optionally labeled "from"
and "to").parallel integration for details and a simple example.bn.strength, see below.threshold attribute of the strength argument.averaged.network, it defaults to the set of the
unique node labels in the strength argument.bnlearn-package for details.NULL, weights are assumed to be uniform.TRUE the (PDAG of) the equivalence
class is used instead of the network structure itself. It should make it
easier to identify score-equivalent arcs.gs, iamb,
fast.iamb, inter.iamb, mmpc, hc, tabu,
criterion is the label of a score function, see score
for details), the conditional independence test (currently the only one is
TRUE a lot of debugging output is
printed; otherwise the function is completely silent.arc.strength, boot.strength and custom.strength return
an object of class bn.strength; boot.strength and
custom.strength also include information about the relative
probabilities of arc directions. averaged.network returns an object of class bn.
See bn.strength class and bn-class for details.
arc.strength computes a measure of confidence or strength for each
arc, while keeping fixed the rest of the network structure. If criterion is a conditional independence test, the strength is a
p-value (so the lower the value, the stronger the relationship). The
conditional independence test would be that to drop the arc from the
network. The only possible additional parameter is B, the number
of permutations to be generated for each permutation test.
If criterion is the label of a score function, the strength is
measured by the score gain/loss which would be caused by the arc's removal.
In other words, it is the difference between the score of the network
including the arc and the score of the network in which the arc is not
present. Negative values correspond to decreases in the network score and
positive values correspond to increases in the network score (the stronger
the relationship, the more negative the difference). There may be additional
parameters depending on the choice of the score, see score for
details.
Model averaging is supported for objects of class bn.strength returned
by boot.strength or by custom.strength. The
returned network contains the arcs whose strength is greater than the
threshold attribute of the bn.strength object passed to
averaged.network.
Friedman N, Goldszmidt M, Wyner A (1999). "Data Analysis with Bayesian Networks: A Bootstrap Approach". In "UAI '99: Proceedings of the 15th Annual Conference on Uncertainty in Artificial Intelligence", pp. 196-201. Morgan Kaufmann.
for the computation of the strength (confidence) significance threshold:
Scutari M, Nagarajan R (2011). "On Identifying Significant Edges in Graphical Models". In "Proceedings of the Workshop 'Probabilistic Problem Solving in Biomedicine' of the 13th Artificial Intelligence in Medicine (AIME) Conference", pp. 15-27.
strength.plot, choose.direction,
score, ci.test.data(learning.test)
res = gs(learning.test)
res = set.arc(res, "A", "B")
arc.strength(res, learning.test)
arcs = boot.strength(learning.test, algorithm = "hc")
arcs[(arcs$strength > 0.85) & (arcs$direction >= 0.5), ]
averaged.network(arcs)
start = random.graph(nodes = names(learning.test), num = 50)
netlist = lapply(start, function(net) {
hc(learning.test, score = "bde", iss = 10, start = net) })
arcs = custom.strength(netlist, nodes = names(learning.test),
cpdag = FALSE)
arcs[(arcs$strength > 0.85) & (arcs$direction >= 0.5), ]
modelstring(averaged.network(arcs))Run the code above in your browser using DataLab