particles.distributions.MvNormal

class particles.distributions.MvNormal(loc=0.0, scale=1.0, cov=None)[source]

Multivariate Normal distribution.

Parameters:
  • loc (ndarray) – location parameter (see below)
  • scale (ndarray) – scale parameter (see below)
  • cov ((d, d) ndarray) – covariance matrix (see below)

Note

The parametrisation used here is slightly unusual. In short, the following line:

x = dists.MvNormal(loc=m, scale=s, cov=Sigma).rvs(size=30)

is equivalent to:

x = m + s * dists.MvNormal(cov=Sigma).rvs(size=30)

The idea is that they are many cases when we may want to pass varying means and scales (but a fixed correlation matrix).

dx (dimension of vectors x) is determined by matrix cov; for rvs, size must be (N, ), otherwise an error is raised.

Notes: * if du<dx, fill the remaining dimensions by location

(i.e. scale should be =0.)
  • cov does not need to be a correlation matrix; more generally

> mvnorm(loc=x, scale=s, cor=C) correspond to N(m,diag(s)*C*diag(s))

In addition, note that x and s may be (N, d) vectors; i.e for each n=1…N we have a different mean, and a different scale.

__init__(loc=0.0, scale=1.0, cov=None)[source]

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__([loc, scale, cov]) Initialize self.
linear_transform(z)
logpdf(x)
pdf(x)
posterior(x[, Sigma]) Posterior for model: X1, …, Xn ~ N(theta, Sigma).
ppf(u) Note: if dim(u) < self.dim, the remaining columns are filled with 0 Useful in case the distribution is partly degenerate
rvs([size])
shape(size)

Attributes

dim int([x]) -> integer int(x, base=10) -> integer
dtype