KL.bn.fit {bnmonitor} | R Documentation |
KL Divergence for bn.fit
Description
KL.bn.fit
returns the Kullback-Leibler (KL) divergence between a Bayesian network and its update after parameter variation.
Usage
## S3 method for class 'bn.fit'
KL(
x,
node,
value_node,
value_parents,
new_value,
covariation = "proportional",
...
)
Arguments
x |
object of class |
node |
character string. Node of which the conditional probability distribution is being changed. |
value_node |
character string. Level of |
value_parents |
character string. Levels of |
new_value |
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. |
covariation |
character string. Co-variation scheme to be used for the updated Bayesian network. Can take values |
... |
additional parameters to be added to the plot. |
Details
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
Value
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.
References
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.
See Also
Examples
KL(synthetic_bn, "y2", "1", "2", "all", "all")
KL(synthetic_bn, "y1", "2", NULL, 0.3, "all")