더북(TheBook)

이 두 함수 모두 벡터 2개 이상에서도 동작한다. 벡터 2개 이상에서 공분산과 상관 행렬을 계산하려면 행렬이나 데이터 프레임으로 입력해야 한다. 다음 코드에서는 x와 크기가 같은 랜덤 벡터 z를 만든다. 이때 z는 균등 분포를 따르고 xy에 종속되지 않는다. cbind() 함수를 사용하여 열 3개를 갖는 행렬을 만들고, 이 벡터 사이의 공분산 행렬을 계산한다.

> z <- runif(length(x))
> m1 <- cbind(x, y, z)
> cov(m1)
          x            y            z
x 0.7187228   1.41985899   0.04229950
y 1.4198590   3.02719645   0.07299981
z 0.0422995   0.07299981   0.08005535

비슷한 방법으로 상관 행렬을 직접 구할 수 있다.

> cor(m1)
          x           y           z
x 1.0000000   0.9625964   0.1763434
y 0.9625964   1.0000000   0.1482881
z 0.1763434   0.1482881   1.0000000

y에 랜덤 노이즈가 섞여 있기는 하지만 x와 선형 관계가 있기 때문에 둘 사이에는 높은 상관성이 있을 것이라고 기대할 수 있다. 하지만 z에서는 그렇지 않다. 상관 행렬을 보면, 우리 기대와 크게 다르지 않다. 책의 범주를 벗어나지만, 통계적으로 어떤 결론을 도출하려면 철저한 통계 검정을 수행해야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.