Movatterモバイル変換


[0]ホーム

URL:


SciPy

numpy.cov

numpy.cov(m,y=None,rowvar=True,bias=False,ddof=None,fweights=None,aweights=None)[source]

Estimate a covariance matrix, given data and weights.

Covariance indicates the level to which two variables vary together.If we examine N-dimensional samples,X = [x_1, x_2, ... x_N]^T,then the covariance matrix elementC_{ij} is the covariance ofx_i andx_j. The elementC_{ii} is the varianceofx_i.

See the notes for an outline of the algorithm.

Parameters:

m : array_like

A 1-D or 2-D array containing multiple variables and observations.Each row ofm represents a variable, and each column a singleobservation of all those variables. Also seerowvar below.

y : array_like, optional

An additional set of variables and observations.y has the same formas that ofm.

rowvar : bool, optional

Ifrowvar is True (default), then each row represents avariable, with observations in the columns. Otherwise, the relationshipis transposed: each column represents a variable, while the rowscontain observations.

bias : bool, optional

Default normalization (False) is by(N-1), whereN is thenumber of observations given (unbiased estimate). Ifbias is True,then normalization is byN. These values can be overridden by usingthe keywordddof in numpy versions >= 1.5.

ddof : int, optional

If notNone the default value implied bybias is overridden.Note thatddof=1 will return the unbiased estimate, even if bothfweights andaweights are specified, andddof=0 will returnthe simple average. See the notes for the details. The default valueisNone.

New in version 1.5.

fweights : array_like, int, optional

1-D array of integer freguency weights; the number of times eachobservation vector should be repeated.

New in version 1.10.

aweights : array_like, optional

1-D array of observation vector weights. These relative weights aretypically large for observations considered “important” and smaller forobservations considered less “important”. Ifddof=0 the array ofweights can be used to assign probabilities to observation vectors.

New in version 1.10.

Returns:

out : ndarray

The covariance matrix of the variables.

See also

corrcoef
Normalized covariance matrix

Notes

Assume that the observations are in the columns of the observationarraym and letf=fweights anda=aweights for brevity. Thesteps to compute the weighted covariance are as follows:

>>>w=f*a>>>v1=np.sum(w)>>>v2=np.sum(w*a)>>>m-=np.sum(m*w,axis=1,keepdims=True)/v1>>>cov=np.dot(m*w,m.T)*v1/(v1**2-ddof*v2)

Note that whena==1, the normalization factorv1/(v1**2-ddof*v2) goes over to1/(np.sum(f)-ddof)as it should.

Examples

Consider two variables,x_0 andx_1, whichcorrelate perfectly, but in opposite directions:

>>>x=np.array([[0,2],[1,1],[2,0]]).T>>>xarray([[0, 1, 2],       [2, 1, 0]])

Note howx_0 increases whilex_1 decreases. The covariancematrix shows this clearly:

>>>np.cov(x)array([[ 1., -1.],       [-1.,  1.]])

Note that elementC_{0,1}, which shows the correlation betweenx_0 andx_1, is negative.

Further, note howx andy are combined:

>>>x=[-2.1,-1,4.3]>>>y=[3,1.1,0.12]>>>X=np.vstack((x,y))>>>print(np.cov(X))[[ 11.71        -4.286     ] [ -4.286        2.14413333]]>>>print(np.cov(x,y))[[ 11.71        -4.286     ] [ -4.286        2.14413333]]>>>print(np.cov(x))11.71

Previous topic

numpy.correlate

Next topic

numpy.histogram

  • © Copyright 2008-2009, The Scipy community.
  • Last updated on Jun 10, 2017.
  • Created usingSphinx 1.5.3.

[8]ページ先頭

©2009-2025 Movatter.jp