Covariance — SciPy v1.16.2 Manual (original) (raw)

scipy.stats.

class scipy.stats.Covariance[source]#

Representation of a covariance matrix

Calculations involving covariance matrices (e.g. data whitening, multivariate normal function evaluation) are often performed more efficiently using a decomposition of the covariance matrix instead of the covariance matrix itself. This class allows the user to construct an object representing a covariance matrix using any of several decompositions and perform calculations using a common interface.

Attributes:

covariance

Explicit representation of the covariance matrix

log_pdet

Log of the pseudo-determinant of the covariance matrix

rank

Rank of the covariance matrix

shape

Shape of the covariance array

Methods

Examples

The Covariance class is used by calling one of its factory methods to create a Covariance object, then pass that representation of the Covariance matrix as a shape parameter of a multivariate distribution.

For instance, the multivariate normal distribution can accept an array representing a covariance matrix:

from scipy import stats import numpy as np d = [1, 2, 3] A = np.diag(d) # a diagonal covariance matrix x = [4, -2, 5] # a point of interest dist = stats.multivariate_normal(mean=[0, 0, 0], cov=A) dist.pdf(x) 4.9595685102808205e-08

but the calculations are performed in a very generic way that does not take advantage of any special properties of the covariance matrix. Because our covariance matrix is diagonal, we can use Covariance.from_diagonalto create an object representing the covariance matrix, andmultivariate_normal can use this to compute the probability density function more efficiently.

cov = stats.Covariance.from_diagonal(d) dist = stats.multivariate_normal(mean=[0, 0, 0], cov=cov) dist.pdf(x) 4.9595685102808205e-08