7.5 공분산과 상관계수

TonyHan·2020년 10월 13일
0

기초통계학

목록 보기
5/8

공분산/상관계수 : 다변수 확률변수 간의 상관 관계를 숫자로 나타낸 것

표본공분산


표본공분산은 위와 같이 정의된다. 위의 공식을 이해하기 위해 아래의 그림을 보자


데이터가 아래의 사각형안에 들어가 있다고 가정하자. 이제 공식은 잘 보면 각 데이터들에 대해 평균으로 부터의 면적을 구하는 함수임을 알 수 있다. 여기에서 1, 3사분면은 양수 2, 4사분면은 음수이기 때문에 데이터가 어디에 몰리어 있는가에 따라서 공분산의 값이 결정이 된다.

여기에 들어가 있는 정보
1. 방향 : 값이 양/음/평균(0) 에 따라 어느 방향으로 값이 퍼지어 있는지 확인 가능
2. 크기 : 면적이기 때문에 얼마나 원점에 가까이 있는지를 확인 가능

표본상관계수


표본상관계수는 우리가 이미 기존에 알고 있었던 분포의 크기값 즉 표본분산 값으로 공분산을 나누어준 형태로 되어 있다. 이렇게 하면 우리는 크기 값을 잃고 방향값만을 가지게 된다. 실재로 크기와 방향을 모두 가진 것보다는 방향만을 가진것이 더 유용하다. 그렇기에 표보상관계수는 분포의 모향이 어떻게 되는지를 알려준다.

이를 다른말로 피어슨(Pearson) 상관계수라고 부르기도 한다.

사용

scipy stats에 pearsoner 함수를 제공하여 준다.

위와 같이 두개의 벡터를 인자로 넘기어 주고 결과 값은 첫번째는 상관계수 자체 두번째는 상관계수의 유의확률이다.

from sklearn.datasets import load_iris

확률변수의 공분산과 상관계수(이론적)


두 확률변수의 공분산은 기댓값 연산자를 사용하여 다음과 같이 정의된다.


마찬가지로 상관계수는 위와 같이 계산할 수 있다.

이때 확률변수의 상관계수는 다음의 성질을 가진다.
-1 <= p <= 1

로우의 값은 -1 과 1 사이의 값만을 가지게 된다.

이때 로우의 값은 특정 값을 가지는 것에 따라 부르는 호칭이 조금 다르다.

  • p=1 : 완전선형 상관관계
  • p=0 : 무상관(독립과는 다름)
  • p=-1 : 완전선형 반상관관계

왜 무상관 일까?
독립이면 p=0은 맞다.
하지만 p=0이라고 독립인 것은 아니다.
이는 두 변수간의 직선상의 상관관계가 없다는 것이지 독립이라는 의미는 아니기 때문이다.

비선형 상관관계

위에서는 x와 y의 관계가 선형(1차선)으로 이루어진 관계를 보았다면 이번에는 1차선을 제외한 형태의 상관관계를 가지는 비선형 상관관계에 대해서 다루어 보자


그래프는 위와 같이 선형과는 거리가 있어보이지만 상관관계를 계산해 보면 비선형인 것을 확인할 수 있다.

앤스콤 데이터

앤스콤 4분할 그래프는 영국 프랭크 앤스콤이 데이터를 수치적으로만 확인할 때 발생할 수 있는 함정 을 보여주기 위해 만든 그래프이다.

앤스콤 데이터는 위와 같이 4개의 종류로 분리되어 있다. 각 데이터의 평균과 분산을 계산해보면 모두 동일한 것을 확인할 수 있다. 하지만 이를 그래프로 그려보면

우리의 생각과는 다르게 데이터 그룹의 패턴이 각기 다르다는 것을 확인할 수 있다.

결론적으로 피어슨 상관계수는 비선형적 상관관계를 잘 파악하지 못하며 추가적을 아웃라이어에 굉장히 민감하게 반응 할 수 있다는 것을 알 수 있다. 그래서 이런 경우를 잘 생각해서 피어슨 상관관계에서 어떠한 상관관계를 잘 파악해야 한다.

다변수 확률변수의 표본공분산

데이터 세 개 이상일때의 공분산을 구하는 방법은 존재하지 않는다. 그래서 데이터 중에서 두개를 골라서 공분산을 구해야 한다.

위와 같이 데이터가 (N, M)개 존재한다고 할때 각각을 나타내기 보다는 한번에 모두를 표현할 수 있는 공분산 행렬을 사용하기로 하였다.

위와 같이 표본공분산행렬을 정의한다. 이때 대각선은 공분산의 값이 아닌 분산 값이다. 반대로 비대각선은 공분산이다.

그래서 위의 표본공분산행렬의 원소 한개를 만들기 위한 공식들은 위와 같이 총 3가지를 알고 있으면 된다.

반대로 모든 행렬을 만들고자 한다면 위의 공식을 사용하여서 제작하면 쉽게 제작할 수 있다.

다변수 확률변수의 공분산


이론적인 공분산은 위와 같이 벡터를 만든다음에 각 공분산을 각각 구해주면 값을 구할 수 있다.

profile
예술가

0개의 댓글

관련 채용 정보