score {bnlearn} R Documentation

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, 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 network score. If none is specified, the default score is the Akaike Information Criterion for discrete data sets and the Bayesian Information Criterion for both discrete and continuous data sets. See bnlearn-package for details.
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.

Details

Additional parameters of the score function:

  • iss: the imaginary sample size, used by the Bayesian Dirichlet equivalent score and the Bayesian Gaussian posterior density. It is also known as “equivalent sample size”. The default value is equal to the number of cells of the joint contingency table (for compatibility with the deal package) for the bde score, or to the number of independent parameters for the bge score.
  • k: the penalty per parameter to be used by the AIC and BIC scores. The default value is 1 for AIC and log(nrow(data))/2 for BIC.
  • phi: the prior phi matrix formula to use in the Bayesian Gaussian equivalent (bge) score. Possible values are heckerman (default) and bottcher (the one used by default in the deal package.)

Value

A numeric value, the score of the Bayesian network.

Author(s)

Marco Scutari

References

Chickering DM (1995). "A Transformational Characterization of Equivalent Bayesian Network Structures". In "UAI '95: Proceedings of the Eleventh Annual Conference on Uncertainty in Artificial Intelligence", pp. 87-98. Morgan Kaufmann.

Geiger D, Heckerman D (1994). "Learning Gaussian Networks". Technical report, Microsoft Research. Available as Technical Report MSR-TR-94-10.

Heckerman D, Geiger D, Chickering DM (1995). "Learning Bayesian Networks: The Combination of Knowledge and Statistical Data". Machine Learning, 20(3), 197-243. Available as Technical Report MSR-TR-94-09.

See Also

choose.direction, arc.strength.

Examples

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

## 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