Plot a Bayesian network and format its arcs according to the strength of the dependencies they represent. Requires the Rgraphviz package.
strength.plot(x, strength, threshold, cutpoints, highlight = NULL,
layout = "dot", shape = "circle", main = NULL, sub = NULL, debug = FALSE)
an object of class bn
.
an object of class bn.strength
computed from the object
of class bn
corresponding to the x
argument.
a numeric value. See below.
an array of numeric values. See below.
a list, see graphviz.plot
for details.
a character string, the layout argument that will be passed to
Rgraphviz. Possible values are dots
, neato
,
twopi
, circo
and fdp
. See Rgraphviz documentation
for details.
a character string, the shape of the nodes. Can be circle
,
ellipse
or rectangle
.
a character string, the main title of the graph. It's plotted at the top of the graph.
a character string, a subtitle which is plotted at the bottom of the graph.
a boolean value. If TRUE
a lot of debugging output is
printed; otherwise the function is completely silent.
The object of class graphAM
used to format and render the plot. It can
be further modified using the commands present in the graph and
Rgraphviz packages.
The threshold
argument is used to determine which arcs are supported
strongly enough by the data to be deemed significant:
if arc strengths have been computed using conditional independence
tests, any strength coefficient (which is the p-value of the test) lesser
or equal than the threshold is considered significant. In this case the
default value of threshold
is equal to the value of the
alpha
argument used in the call to arc.strength
, which in
turn defaults to the one used by the learning algorithm (if any) or to
0.05
.
if arc strengths have been computed using network scores, any strength
coefficient (which is the increase/decrease of the network score caused by
the removal of the arc) lesser than the threshold is considered
significant. In this case the default value of threshold
is
0
.
if arc strengths have been computed using bootstrap, any strength
coefficient (which is the relative frequency of the arc in the networks
learned from the bootstrap replicates) greater or equal than the threshold
is considered significant. In this case the default value of
threshold
is 0.5
.
Non-significant arcs are plotted as dashed lines.
The cutpoints
argument is an array of numeric values used to divide
the range of the strength coefficients into intervals. The interval each
strength coefficient falls into determines the line width of the corresponding
arc in the plot. The default intervals are delimited by
unique(c(0, threshold/c(10, 5, 2, 1.5, 1), 1))
if the coefficients are computed from conditional independence tests, by
1 - unique(c(0, threshold/c(10, 5, 2, 1.5, 1), 1))
for bootstrap estimates or by the quantiles
quantile(-s[s < threshold], c(0.50, 0.75, 0.90, 0.95, 1))
of the significant coefficients if network scores are used.
# plot the network learned by gs().
res = set.arc(gs(learning.test), "A", "B")
strength = arc.strength(res, learning.test, criterion = "x2")
strength.plot(res, strength)
# add another (non-significant) arc and plot the network again.
res = set.arc(res, "A", "C")
strength = arc.strength(res, learning.test, criterion = "x2")
strength.plot(res, strength)
Run the code above in your browser using DataLab