cov【NumPy】
目的:共分散行列を求める
書式:
out = numpy.cov(X, Y, rowvar, bias)
主な引数:
X, Y ... 処理の対象となるデータ
ベクトル型のデータを格納したXのみを与えた場合、戻り値は分散となる。
ベクトル型のデータを格納したX, Yを与えた場合、共分散行列を返す。(わかりやすい使い方)
行列型のデータを格納したXのみを与えた場合、共分散行列を返す。
戻り値
分散、共分散行列
基本的な使い方:
code:cov01.py
import numpy as np
Vx1 = np.cov(x)
print('cov(x)=\n', Vx1)
Vx2 = np.cov(x,x)
print('cov(x,x)=\n', Vx2)
Vxy1 = np.cov(x,y)
print('cov(x,y)=\n', Vxy1)
code:(結果).txt
cov(x)=
2.9166666666666665
cov(x,x)=
cov(x,y)=
行列型の引数を一つ与えた場合
code:cov02.py
import numpy as np
print('xy =\n', xy, xy.shape)
Vxy1 = np.cov(xy)
print('cov(xy)=\n', Vxy1, Vxy1.shape)
Vxy2 = np.cov(xy, rowvar=False)
print('cov(xy, rowvar=False)=\n', Vxy2, Vxy2.shape)
code:(結果).txt
xy =
cov(xy)=
cov(xy, rowvar=False)=
2x4の配列を渡した。デフォルトでは各行をデータ列として解析を行うため、2行の行列からは2x2の共分散行列が得られる。
引数rowvar=Falseを与えると、各列をデータ列として解釈するため、これは4つのデータ列として処理される。結果として4x4の共分散行列が得られる。