# particles.distributions.MvNormal¶

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

Multivariate Normalp distribution.

Parameters:
• loc (ndarray) – location parameter (default: 0.)

• scale (ndarray) – scale parameter (default: 1.)

• cov ((d, d) ndarray) – covariance matrix (default: identity, with dim determined by loc)

Notes

The dimension d is determined either by argument `cov` (if it is a dxd array), or by argument loc (if `cov` is not specified). In the latter case, the covariance matrix is set to the identity matrix.

If `scale` is set to `1.` (default value), we use the standard parametrisation of a Gaussian, with mean `loc` and covariance matrix `cov`. Otherwise:

```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 cases when we may want to pass varying means and scales (but a fixed correlation matrix). Note that `cov` does not need to be a correlation matrix; e.g.:

```MvNormal(loc=m, scale=s, cov=C)
```

corresponds to N(m, diag(s)*C*diag(s)).

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

To specify a Multivariate Normalp distribution with a different covariance matrix for each particle, see `VaryingCovNormal`.

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

Methods

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

Attributes

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