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 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 network score. If none is specified, the default score is the Akaike Information Criterion for discrete data sets and the Bayesian Gaussian posterior density for continuous ones. 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:

Value

A numeric value, the score of the Bayesian network.

Note

Execution time scales linearly with the sample size.

Author(s)

Marco Scutari

References

D. M. Chickering. A Transformational Characterization of Equivalent Bayesian Network Structures. In Proceedings 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.

D.Geiger and D. Heckerman. Learning Gaussian Networks. Microsoft Research Technical Report MSR-TR-94-10.

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

[Package bnlearn version 1.3 Index]