bn.fit
KL.bn.fit
returns the Kullback-Leibler (KL) divergence between a Bayesian network and its update after parameter variation.
# S3 method for bn.fit
KL(
x,
node,
value_node,
value_parents,
new_value,
covariation = "proportional",
...
)
A dataframe with the varied parameter and the KL divergence for different co-variation schemes. If plot = TRUE
the function returns a plot of the KL divergences.
object of class bn.fit
.
character string. Node of which the conditional probability distribution is being changed.
character string. Level of node
.
character string. Levels of node
's parents. The levels should be defined according to the order of the parents in bnfit[[node]][["parents"]]
. If node
has no parents, then it should be set to NULL
.
numeric vector with elements between 0 and 1. Values to which the parameter should be updated. It can take a specific value or more than one. In the case of more than one value, these should be defined through a vector with an increasing order of the elements. new_value
can also be set to the character string all
: in this case a sequence of possible parameter changes ranging from 0.05 to 0.95 is considered.
character string. Co-variation scheme to be used for the updated Bayesian network. Can take values uniform
, proportional
, orderp
, all
. If equal to all
, uniform, proportional and order-preserving co-variation schemes are used. Set by default to proportional
.
additional parameters to be added to the plot.
The Bayesian network on which parameter variation is being conducted should be expressed as a bn.fit
object.
The name of the node to be varied, its level and its parent's levels should be specified.
The parameter variation specified by the function is:
P ( node
= value_node
| parents = value_parents
) = new_value
Kullback, S., & Leibler, R. A. (1951). On information and sufficiency. The annals of mathematical statistics, 22(1), 79-86.
Leonelli, M., Goergen, C., & Smith, J. Q. (2017). Sensitivity analysis in multilinear probabilistic models. Information Sciences, 411, 84-97.
CD
KL(synthetic_bn, "y2", "1", "2", "all", "all")
KL(synthetic_bn, "y1", "2", NULL, 0.3, "all")
Run the code above in your browser using DataLab