Gaussian Package

Inference

Use this module to do inference in Gaussian Bayesian Belief Networks.

class pybbn.gaussian.inference.GaussianInference(H, M, E, meta={})

Bases: object

Gaussian inference.

property P

Gets the univariate parameters of each variable.

Returns:

Dictionary. Keys are variable names. Values are tuples of (mean, variance).

__init__(H, M, E, meta={})

ctor.

Parameters:
  • H – Headers.

  • M – Means.

  • E – Covariance matrix.

  • meta – Dictionary storing observations.

do_inference(name, observation)

Performs inference. Simply calls the do_inferences method.

Parameters:
  • name – Name of variable.

  • observation – Observation value.

Returns:

GaussianInference.

do_inferences(observations)

Performs inference.

Denote the following.

  • \(z\) as the variable observed

  • \(y\) as the set of other variables

  • \(\mu\) as the vector of means
    • \(\mu_z\) as the partitioned \(\mu`\) of length \(|z|\)

    • \(\mu_y\) as the partitioned \(\mu`\) of length \(|y|\)

  • \(\Sigma\) as the covariance matrix
    • \(\Sigma_{yz}\) as the partitioned \(\Sigma\) of \(|y|\) rows and \(|z|\) columns

    • \(\Sigma_{zz}\) as the partitioned \(\Sigma\) of \(|z|\) rows and \(|z|\) columns

    • \(\Sigma_{yy}\) as the partitioned \(\Sigma\) of \(|y|\) rows and \(|y|\) columns

If we observe evidence \(z_e\), then the new means \(\mu_y^{*}\) and covariance matrix \(\Sigma_y^{*}\) corresponding to \(y\) are computed as follows.

  • \(\mu_y^{*} = \mu_y - \Sigma_{yz} \Sigma_{zz} (z_e - \mu_z)\)

  • \(\Sigma_y^{*} = \Sigma_{yy} \Sigma_{zz} \Sigma_{yz}^{T}\)

Parameters:

observations – List of observation. Each observation is tuple (name, value).

Returns:

GaussianInference.

property marginals

Gets the marginals.

Returns:

List of dictionary. Each element has name, mean and variance.

sample_marginals(size=1000)

Samples data from the marginals.

Parameters:

size – Number of samples.

Returns:

Dictionary with keys as names and values as pandas series (sampled data).