torch.cov#
- torch.cov(input, *, correction=1, fweights=None, aweights=None) Tensor#
Estimates the covariance matrix of the variables given by the
inputmatrix, where rows are the variables and columns are the observations.A covariance matrix is a square matrix giving the covariance of each pair of variables. The diagonal contains the variance of each variable (covariance of a variable with itself). By definition, if
inputrepresents a single variable (Scalar or 1D) then its variance is returned.The sample covariance of the variables and is given by:
where and are the simple means of the and respectively, and is the
correction.If
fweightsand/oraweightsare provided, the weighted covariance is calculated, which is given by:where denotes
fweightsoraweights(fandafor brevity) based on whichever is provided, or if both are provided, and is the weighted mean of the variable. If not provided,fand/oracan be seen as a vector of appropriate size.- Parameters
input (Tensor) – A 2D matrix containing multiple variables and observations, or a Scalar or 1D vector representing a single variable.
- Keyword Arguments
correction (int, optional) – difference between the sample size and sample degrees of freedom. Defaults to Bessel’s correction,
correction = 1which returns the unbiased estimate, even if bothfweightsandaweightsare specified.correction = 0will return the simple average. Defaults to1.fweights (tensor, optional) – A Scalar or 1D tensor of observation vector frequencies representing the number of times each observation should be repeated. Its numel must equal the number of columns of
input. Must have integral dtype. Ignored ifNone. Defaults toNone.aweights (tensor, optional) – A Scalar or 1D array of observation vector weights. These relative weights are typically large for observations considered “important” and smaller for observations considered less “important”. Its numel must equal the number of columns of
input. Must have floating point dtype. Ignored ifNone. Defaults toNone.
- Returns
(Tensor) The covariance matrix of the variables.
See also
torch.corrcoef()normalized covariance matrix.Example:
>>> x = torch.tensor([[0, 2], [1, 1], [2, 0]]).T >>> x tensor([[0, 1, 2], [2, 1, 0]]) >>> torch.cov(x) tensor([[ 1., -1.], [-1., 1.]]) >>> torch.cov(x, correction=0) tensor([[ 0.6667, -0.6667], [-0.6667, 0.6667]]) >>> fw = torch.randint(1, 10, (3,)) >>> fw tensor([1, 6, 9]) >>> aw = torch.rand(3) >>> aw tensor([0.4282, 0.0255, 0.4144]) >>> torch.cov(x, fweights=fw, aweights=aw) tensor([[ 0.4169, -0.4169], [-0.4169, 0.4169]])