Learn R Programming

bnlearn (version 0.6)

score: Score of the Bayesian network

Description

Compute the score of the Bayesian network.

Usage

score(x, data, type = NULL, ..., debug = FALSE)

## S3 method for class 'bn': logLik(object, data, ...) ## S3 method for class 'bn': AIC(object, data, ..., k = 1)

Arguments

x
an object of class "bn".
object
an object of class "bn".
data
a data frame, containing the data the Bayesian network was learned from.
type
a character string, the label of a score. Possible values are lik (multinomial likelihood), loglik (multinomial loglikelihood), aic (Akaike Information Criterion),
debug
a boolean value. If TRUE a lot of debugging output is printed; otherwise the function is completely silent.
...
extra arguments from the generic method (for the AIC and logLik functions, currently ignored) or additional tuning parameters (for the score function).
k
a numeric value, the penalty per parameter to be used; the default k = 1 gives the expression used to compute the AIC in the context of scoring Bayesian networks.

Value

  • A numeric value, the score of the Bayesian network.

Details

Additional parameters of the score function:

  • iss: the imaginary sample size, used by the Bayesian Dirichlet equivalent score. The default value is twice the number of cells of the joint contingency table (for compatibility with thedealpackage).
  • k: the penalty per parameter to be used by the AIC and BIC scores. Thr default value is1for AIC andlog(nrow(data))/2for BIC.
  • phi: the prior phi matrix formula to use in the Bayesian Gaussian equivalent (bge) score. Possible values areheckerman(default) andbottcher(the one used by default in thedealpackage.)

References

D. M. Chickering. A Transformational Characterization of Equivalent Bayesian Network Structures. In Proceedins of 11th Conference on Uncertainty in Artificial Intelligence, pages 87-98. Morgan Kaufmann Publishers Inc., 1995.

D. Heckerman, D. Geiger and D. Chieckering. Learning Bayesian Networks: The Combination of Knowledge and Statistical Data. Microsoft Research Technical Report MSR-TR-94-09.

Examples

Run this code
data(learning.test)
res = set.arc(gs(learning.test), "A", "B")
score(res, learning.test, type = "bde")
# [1] -25005.24
## let's see score equivalence in action!
res2 = set.arc(gs(learning.test), "B", "A")
score(res2, learning.test, type = "bde")
# [1] -25005.24

## k2 score on the other hand is not score equivalent.
score(res, learning.test, type = "k2")
# [1] -23958.70
score(res2, learning.test, type = "k2")
# [1] -23957.68

## equivalent to logLik(res, learning.test)
score(res, learning.test, type = "loglik")
# [1] -23832.13

## equivalent to AIC(res, learning.test)
score(res, learning.test, type = "aic")
# [1] -23873.13

Run the code above in your browser using DataLab