bn.fitKL.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