NumPy - numpy.cov
11 Feb 2018
numpy.cov
numpy.cov(m, y=None, rowvar=1, bias=0, ddof=None)
주어진 값을 바탕으로 공분산을 평가합니다. 공분산은 두 확률변수의 서로 다르다는 것의 레밸을 나타냅니다. 만약에 N-차원 샘플들을 실험한다고 하면, X = [x_1, x_2, … x_N]^T 이라고 했을 때, 공분산 매트릭스 요소 C_{ij}는 x_i 그리고 x_j 의 공분산이다. 요소 C_{ii}는 x_i의 분산이다.
Parameters
- m :
array_like
- y :
array_like
,optional
- rowvar :
int
optional
- bias :
int
optional
- ddof :
int
optional
Return
- out :
ndarray
예제
두 변수 X0, X1는 개수가 같지만 반대로 가는 것으로 생각 할 수 있습니다.
>>> x = np.array([[0, 2], [1, 1], [2, 0]]).T
>>> x
array([[0, 1, 2],
[2, 1, 0]])
주목할 것은 X0가 증가하고 X1는 감소하는 것하는 것이입니다. 공분산 매트릭스는 명확히 보여줍니다.
>>> np.cov(x)
array([[ 1., -1.],
[-1., 1.]])
요소 C_{0,1}는 X0, X1 사이의 공분산을 보여줍니다. 음수인 것을 볼수 있습니다. 더해서, 아래의 예제를 보고 두 변수를 결합하는 방법을 알 수 있습니다.
>>> 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