double GetMutualInfo_bn ( sensv_bn*  sens,   const node_bn*  Vnode )

Measures the mutual information between two nodes, which is how much a finding at one node (called the "varying node") is expected to alter the beliefs (measured as decrease in its entropy) at another node (called the "query node").

The query node is set by the particular sensv_bn created (see NewSensvToFinding_bn). The varying node is passed as Vnode.

This function returns the mutual information between two nodes (measured in bits). It can be used with any discrete or discretized nodes. Mutual information is the expected reduction in entropy of one node (measured in bits) due to a finding at another.

The maximum possible decrease in entropy of the query node is when entropy goes to zero, i.e., all uncertainty is removed. That happens when a finding is obtained for the query node itself. So to find the entropy of a node, measure the mutual information between a node and itself (that is why "entropy" is sometimes called "self information").

To create a sensv_bn that can measure mutual information, pass ENTROPY_SENSV for what_find when calling NewSensvToFinding_bn. For its Vnodes argument, pass a list of all the nodes that might later be passed as Vnode to this function.

Mutual information is symmetric between nodes (i.e., it has the same value when varying and query nodes are reversed). That makes this function useful to measure the degree to which one varying node can effect a number of different query nodes in an efficient way, by just passing the varying node to NewSensvToFinding_bn, and each of the query nodes to this function.

The mutual information between two nodes can depend greatly on what findings are entered elsewhere in the net, and this function will properly take that into account.

The first time this function is called by some sensv_bn after the findings of a net have changed, it takes longer to return, but after that, for each Vnode passed, it returns quickly.

This function is available as "Network -> Sensitivity to Finding" in Netica Application. For more information on it, contact Norsys for the "Sensitivity" document.


Versions 2.03 and later have this function. In versions previous to 3.05, this function was named MutualInfo_bn.

See also:

GetVarianceOfReal_bn    Use a different measure of sensitivity: variance reduction
NewSensvToFinding_bn    Create the sensv_bn
GetTestLogLoss_bn    Get the "logarithmic loss" score, when testing a Bayes net with case data


See NewSensvToFinding_bn.