R: Bayes factor between two network structures

BF {bnlearn} | R Documentation

## Bayes factor between two network structures

### Description

Compute the Bayes factor between the structures of two Bayesian networks..

### Usage

    BF(num, den, data, score, ..., log = TRUE)

### Arguments

`num, den` | two objects of class `bn`, corresponding to the numerator and the denominator models in the Bayes factor.
`data` | a data frame containing the data to be used to compute the Bayes factor.
`score` | a character string, the label of a posterior network score. If none is specified, the default score is the Bayesian Dirichlet equivalent score (`bde`) for discrete networks and the Bayesian Gaussian score (`bge`) for Gaussian networks. Other kinds of Bayesian networks are not currently supported.
`...` | extra tuning arguments for the posterior scores. See `score` for details.
`log` | a boolean value. If `TRUE` the Bayes factor is given as log(BF).

### Value

A single numeric value, the Bayes factor of the two network structures `num` and `den`.

### Note

The Bayes factor for two network structures, by definition, is the ratio of the respective marginal likelihoods which is equivalent to the ration of the corresponding posterior probabilities if we assume the `uniform` prior over all possible DAGs. However, note that it is possible to specify different priors using the “`...`” arguments of `BF()`; in that case the value returned by the function will not be the classic Bayes factor.

### Author(s)

Marco Scutari

### See Also

`score`, `compare`, `bf.strength`.

### Examples

    data(learning.test)

    dag1 = model2network("[A][B][F][C|B][E|B][D|A:B:C]")
    dag2 = model2network("[A][C][B|A][D|A][E|D][F|A:C:E]")
    BF(dag1, dag2, learning.test, score = "bds", iss = 1)

[Package bnlearn version 4.7 Index]