# 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

• 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).