Utilities to manipulate fitted Bayesian networks

Description

Assign, extract or compute various quantities of interest from an object of class bn.fit, bn.fit.dnode, bn.fit.gnode, bn.fit.cgnode or bn.fit.onode.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
## methods available for "bn.fit"
## S3 method for class 'bn.fit'
fitted(object, ...)
## S3 method for class 'bn.fit'
coef(object, ...)
## S3 method for class 'bn.fit'
residuals(object, ...)
## S3 method for class 'bn.fit'
sigma(object, ...)
## S3 method for class 'bn.fit'
predict(object, node, data, method = "parents", ..., prob = FALSE,
  debug = FALSE)
## S3 method for class 'bn.fit'
logLik(object, data, nodes, by.sample = FALSE, ...)
## S3 method for class 'bn.fit'
AIC(object, data, ..., k = 1)
## S3 method for class 'bn.fit'
BIC(object, data, ...)

## methods available for "bn.fit.dnode"
## S3 method for class 'bn.fit.dnode'
coef(object, ...)

## methods available for "bn.fit.onode"
## S3 method for class 'bn.fit.onode'
coef(object, ...)

## methods available for "bn.fit.gnode"
## S3 method for class 'bn.fit.gnode'
fitted(object, ...)
## S3 method for class 'bn.fit.gnode'
coef(object, ...)
## S3 method for class 'bn.fit.gnode'
residuals(object, ...)
## S3 method for class 'bn.fit.gnode'
sigma(object, ...)

## methods available for "bn.fit.cgnode"
## S3 method for class 'bn.fit.cgnode'
fitted(object, ...)
## S3 method for class 'bn.fit.cgnode'
coef(object, ...)
## S3 method for class 'bn.fit.cgnode'
residuals(object, ...)
## S3 method for class 'bn.fit.cgnode'
sigma(object, ...)

Arguments

object

an object of class bn.fit, bn.fit.dnode, bn.fit.gnode, bn.fit.cgnode or bn.fit.onode.

node

a character string, the label of a node.

nodes

a vector of character strings, the label of a nodes whose log-likelihood components are to be computed.

data

a data frame containing the variables in the model.

method

a character string, the method used to estimate predictions. See below.

...

additional arguments. See below.

k

a numeric value, the penalty per parameter to be used; the default k = 1 gives the expression used to compute AIC.

by.sample

a boolean value. If TRUE, logLik returns a vector containing the the log-likelihood of each observations in the sample. If FALSE, logLik returns a single value, the likelihood of the whole sample.

prob

a boolean value. If TRUE and object is a discrete network, the probabilities used for prediction are attached to the predicted values as an attribute called prob.

debug

a boolean value. If TRUE a lot of debugging output is printed; otherwise the function is completely silent.

Details

coef (and its alias coefficients) extracts model coefficients (which are conditional probabilities for discrete nodes and linear regression coefficients for Gaussian and conditional Gaussian nodes).

residuals (and its alias resid) extracts model residuals and fitted (and its alias fitted.values) extracts fitted values from Gaussian and conditional Gaussian nodes. If the bn.fit object does not include the residuals or the fitted values for the node of interest both functions return NULL.

sigma extracts the standard deviations of the residuals from Gaussian and conditional Gaussian networks and nodes.

logLik returns the log-likelihood for the observations in data.

predict returns the predicted values for node given the data specified by data and the fitted network. Depending on the value of method, the predicted values are computed as follows.

  • parents: the predicted values are computed by plugging in the new values for the parents of node in the local probability distribution of node extracted from fitted.

  • bayes-lw: the predicted values are computed by averaging likelihood weighting simulations performed using all the available nodes as evidence (obviously, with the exception of the node whose values we are predicting). The number of random samples which are averaged for each new observation is controlled by the n optional argument; the default is 500. If the variable being predicted is discrete, the predicted level is that with the highest conditional probability. If the variable is continuous, the predicted value is the expected value of the conditional distribution.

Value

predict returns a numeric vector (for Gaussian and conditional Gaussian nodes), a factor (for categorical nodes) or an ordered factor (for ordinal nodes). If prob = TRUE and the network is discrete, the probabilities used for prediction are attached to the predicted values as an attribute called prob.

logLik returns a numeric vector or a single numeric value, depending on the value of by.sample. AIC and BIC always return a single numeric value.

All the other functions return a list with an element for each node in the network (if object has class bn.fit) or a numeric vector or matrix (if object has class bn.fit.dnode, bn.fit.gnode, bn.fit.cgnode or bn.fit.onode).

Note

Ties in prediction are broken using Bayesian tie breaking, i.e. sampling at random from the tied values. Therefore, setting the random seed is required to get reproducible results.

predict accepts either a bn or a bn.fit object as its first argument. For the former, the parameters of the network are fitted on data, that is, the observations whose class labels the function is trying to predict.

Author(s)

Marco Scutari

See Also

bn.fit, bn.fit-class.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.