반응형
롯데V3
롯데 우승하는 그날까지 개발...ing
롯데V3
전체 방문자
오늘
어제
  • 분류 전체보기 (216)
    • Computer Science (0)
      • 운영체제 (0)
    • Problem Solving (160)
      • 프로그래머스 (93)
      • 백준 (60)
      • 리트코드 (2)
      • SQL (5)
    • 언어 (8)
      • 파이썬 (8)
    • 취준 (1)
      • 합격후기 (1)
    • 도서 리뷰 (21)
      • IT 도서 리뷰 (20)
      • 기타 도서 리뷰 (1)
    • 논문 리뷰 (1)
    • 회고 (5)
      • TIL (5)
    • 머신러닝 (9)
      • 통계 (3)
      • 전처리 (1)
      • 클러스터링 (3)
    • 딥러닝 (3)
      • 자연어처리 (1)
      • LLM (1)
    • 프로젝트 (5)
    • Util (0)
    • Tool (1)
      • Poetry (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • DP
  • 티스토리챌린지

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
롯데V3

롯데 우승하는 그날까지 개발...ing

머신러닝/통계

[통계] 공분산과 상관계수

2022. 7. 11. 22:39
728x90
반응형

1. 들어가기 전에

머신러닝을 공부하다가, 판다스에서 상관계수를 계산해주는 코드를 작성하였다.

import pandas as pd

url = ""
data = pd.read_csv(url)
data.corr()

피어슨, 스피어만과 같은 상관계수는 많이 들어봤는데 판다스에서 default로 어떤 상관계수를 쓰고 어떤 상관계수들을 받고 각각 특징이 궁금해졌다.

출처: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.corr.html

우선, 공식 홈페이지를 살펴본 결과, 피어슨 상관계수를 default로 사용한다. 그리고 피어슨, 켄달, 스피어만 상관계수를 사용할 수 있다.

상관계수를 이해하기전 공분산을 이해하는 것이 필수이므로 공분산을 알아본 뒤, 상관계수의 정의를 살펴보고 각각 특징을 알아보자.


2. 공분산

정의
2개의 확률변수의 선형 관계를 나타내는 값이다. (출처: 위키피디아)

$$
Con(X,Y) = E[(X-E[X])(Y-E[Y])]
$$

다만, 공분산은 치명적인 문제점이 있다. 확률변수의 단위 크기에 영향을 많이 받기 때문에, 상관관계의 정도를 알 수  없다. 이 때문에 상관계수가 등장하게 된다.


3. 상관계수

정의
두 변수 사이의 통계적 관계를 포현하기 위해 특정한 상관 관계의 정도를 수치적으로 나타낸 계수이다. 여러 유형의 상관계수가 존재하지만 제각기 자신들만의 정의와 특징이 있다. 이들은 모두 값의 범위가 -1에서 +1 사이에 속하며 여기서 ±1은 정도가 가장 센 잠재적 일치를 나타내고 0은 정도가 가장 센 불일치를 나타낸다. (출처: 위키피디아)

3-1. 선형성(linearity) vs 단조성(Monotonicity)

출처: https://horae.tistory.com/entry/%EC%84%A0%ED%98%95%EA%B4%80%EA%B3%84-%EB%B9%84%EC%84%A0%ED%98%95%EA%B4%80%EA%B3%84-%EB%8B%A8%EC%A1%B0%EA%B4%80%EA%B3%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

  • 선형성: 말그대로 선형(직선)으로 표현되는 경향
  • 단조성: 두 변수가 반드시 일정한 비율로 변화하는 것은 아니다. 이러한 경우 단조 관계라고 볼 수 있다.

따라서 선형 관계는 단조 관계에 포함되는 개념이다.


4. 피어슨 상관계수 (Pearson linear correlation coefficient)

PLCC는 두 변수 간에 선형성이 얼마나 강한지를 측정하기 위해 사용된다.

$$
r_{X Y}=\frac{\sum_{i}^{n}\left(X_{i}-\bar{X}\right)\left(Y_{i}-\bar{Y}\right)}{\sqrt{\sum_{i}^{n}\left(X_{i}-\bar{X}\right)^{2}} \sqrt{\sum_{i}^{n}\left(Y_{i}-\bar{Y}\right)^{2}}}
$$

필자는 다음과 같이 이해했다. 공분산으로는 상관관계의 정도를 알아낼 수 없다. 따라서 표준편차를 통해 -1과 1사이로 정규화를 하였고 이 덕분에 상관관계의 정도를 알 수 있게 된다. 이것이 피어슨 상관계수이다. (위 식을 자세히보면 두 변수의 공분산을 각각의 표준 편차의 곱으로 나눈 값임을 알 수 있다.)

4-1. 그렇다면 왜 표준편차인가?

Reference에도 언급했지만, 해당 글을 보면 알 수 있다.

공분산과 상관계수

 

[기초통계학] 공분산과 상관계수

Review 참고 포스팅 : 2020/05/18 - [Statistics/Basic Statistics] - [기초통계학] 확률변수와 기댓값, 분산 [기초통계학] 확률변수와 기댓값, 분산 Review 참고 포스팅 : 2020/05/15 - [Statistics/Basic Stati..

datalabbit.tistory.com

위 글을 보면,

$$
|\operatorname{Cov}(X, y)| \leq \sqrt{\operatorname{Var}(X) \cdot \operatorname{Var}(y)}
$$

가 됨을 알 수 있고 따라서, -1부터 1사이의 값을 갖게 된다.

 

4-2. 코사인 유사도

한편, 코사인 유사도의 식을 보자.

$$
\text { similarity }=\cos (\theta)=\frac{A \cdot B}{\|A\|\|B\|}=\frac{\sum_{i=1}^{n} A_{i} \times B_{i}}{\sqrt{\sum_{i=1}^{n}\left(A_{i}\right)^{2}} \times \sqrt{\sum_{i=1}^{n}\left(B_{i}\right)^{2}}}
$$

 

피어슨 상관계수의 코사인 유사도의 식은 같다. 따라서, 추천 시스템이나 평점 시스템이 있는 컨텐츠의 유사도 측정 등에 많이 활용된다.


5. 스피어만 상관계수 & 켄달 상관계수

두 방법 모두 변숫값 대신 순위를 사용하고 비모수적 상관계수이다. (피어슨은 모수적 상관계수)

5-1. 스피어만 상관 계수

스피어만 상관 계수는 값에 순위를 매겨 그 순위에 대해 상관계수를 구하는 것이다. 이런 특성 때문에 연속형 변수가 아닌 순서형인 경우에도 상관계수를 구할 수 있다. 식은 다음과 같다.

$$
p=\frac{6 \sum d_{i}^{2}}{n\left(n^{2}-1\right)}
$$

여기서 $d_i$는 $x_i$의 순위 $-y_i$의 순위이다.

스피어만은 데이터 내 편차와 에러에 민감하며 일반적으로 켄달 상관계수보다 높은 값을 가진다.

 

5-2. 켄달 타우

켄달 타우는 두 변수들 간의 순위를 비교하여 연관성을 계산한다. 식은 다음과 같다.

$$
p = \frac{C-D}{C+D}
$$

여기서 $C$는 concordant pair의 수, $D$는 concordant pair가 아닌 수를 의미한다.

concordant pair?
각 변수의 비교 대상의 상하관계가 같은 경우

샘플 사이즈가 작거나 데이터의 동률이 많을 때 유용하다고 한다.


6. 마무리

공분산과 상관계수에 대해 가볍게 알아보았다. 유의할 점은 상관계수로는 두 변수의 인과관계는 알 수가 없다. 이를 확인하기 위해서는 회귀분석을 활용해야 한다.


7. Reference

  • 선형, 비선형 및 단조 관계
  • 피어슨 상관 계수
  • 공분산(Covariance, Cor)과 상관계수(Correalation coefficient) 이란 - 2
  • 공분산과 상관계수
  • 켄달타우란? - 비모수적 상관계수에 대해서

 

728x90
반응형
저작자표시 (새창열림)

'머신러닝 > 통계' 카테고리의 다른 글

[통계] 1종 오류와 2종 오류 & 오차행렬(confusion matrix)  (0) 2022.07.27
[통계] 귀무가설과 대립가설  (0) 2022.07.20
    '머신러닝/통계' 카테고리의 다른 글
    • [통계] 1종 오류와 2종 오류 & 오차행렬(confusion matrix)
    • [통계] 귀무가설과 대립가설
    롯데V3
    롯데V3

    티스토리툴바