np.cov를 사용해 공분산을 계산한다.
import numpy as np
x = [ 8, 3, 6, 6, 9, 4, 3, 9, 3, 4 ]
y = [ 6, 2, 4, 6, 10, 5, 1, 8, 4, 5 ]
cov = np.cov( x, y )
print( cov )
그런데 이때 x와 y의 공분산뿐만 아니라 x와 y 각각의 분산도 계산된다.
결과
array( [ [6.05, 5.61 ], [5.61, 6.98 ] ] )
원하는 x와 y의 공분산(5.61)만 얻으려면 cov[ 0, 1 ]만 취하면 된다.
다음은 수익률의 공분산을 구하는 코드다.
# 공분산 계산
covars = np.cov( returns )