본문 바로가기

Math with Code

공분산(Covariance) 계산하기.

공분산은 두 가지 사전의 확률변수의 분포를 이용해서 두 사건이 어느 정도의 상관관계를 가지고 있는지를 표현하는 한가지 수단이다. 공분산에 대한 자세한 설명은 다른 블로그나 웹을 찾아보도록 하고, 두 개 확률 변수 리스트가 있을 때, 이로부터 공분산을 구하는 코드를 설명해보겠다.

공분산은 두 확률 변수의 집합에서 각각의 편차의 곱을 다시 평균한 것이다. 따라서 다음과 같이 간단한 함수를 만들어서 계산할 수 있다.

### 공분산 계산함수

def covariance(X, Y):
  ## 먼저 평균을 구하는 함수가 필요하다.
  avg = lambda ns: sum(ns) / len(ns)
  ax, ay = avg(X), avg(Y)
  return sum((ax-x)*(ay-y) for x, y in zip(X, Y)) / len(X)