본문 바로가기

데이터분석/기초통계학

pandas 로 공분산과 상관관계 이해하기

상관분석은 변수들 간의 연관성을 분석하는 방법입니다. 상관관계는 두 개의 변수를 기준으로 양의 방향과 음의 방향으로 일정한 규칙이 나타나는 '선형'관계의 형태와 연관 정도를 수치로 나타냅니다. 키와 몸무게 관계, 광고비와 매출액 관계 등이 그 예에 해당됩니다. 

 

상관관계에 대해 이해할 때는 산포도를 이해할 필요가 있습니다. 

 

참고:https://rfriend.tistory.com/405

 

판다스로 아이리스 데이터를 산점도로 그려보면 위와 같이 나옵니다.  산포도 개념을 머리 속에 넣으셨다면, 

잠시 상관계수에 대해 이야기 해보겠습니다. 

 

공분산 두 개의 확률변수에 대한 흩어짐의 정도가 동일한 방향인 양의 방향인지 음의 방향인지를 나타내는 수치입니다. 두 변수가 서로 변하는 정도를 수치로 나타낸 것입니다. 그런데 두 변수 간의 단위에 다르기 때문에 변동 크기량이 모호해집니다. 이 때문에 공분산을 각 변량의 표준편차로 나누어 표준화할 필요가 있는데 이를 '상관계수'라고 합니다. 

 

상관계수는 2가지를 의미합니다. 방향과 힘입니다. 

방향은 부호(음인지 양인지) 알 수 있고, 크기는 절댓값으로 파악하면 됩니다. 

중요한 것은 상관계수의 크기가 크다는 것은 데이터들이 가깝게 모여 있다는 의미힙니다. (아래 예시 참고)

 

 

출처:https://www.youtube.com/watch?v=Se7mWTBRfCc

 

점들과 선과의 각도와는 무관합니다. 오로지, 점들이 모인 정도만을 의미합니다. 

 

 

출처: https://www.youtube.com/watch?v=Se7mWTBRfCc

 

위 두 분포도는 똑같이 상관계수가 1입니다. 이 값(크기)의 의미는 데이터들이 모인정도가 엄청나게 가깝다라는 의미이지 점이 이루는 선의 각도와는 무관합니다. 단, 점들이 완벽하게 y축에 직각의 형태를 띄게 되면 상관계수는 0이 됩니다. x의 증가유무와 상관없이 y값은 일정하게 유지되기 때문입니다.  (아래 상관관계=0 분포도 참고)

 

 

 

 

크기가 작다는 것은 절댓값이 0에 가깝다는 뜻이며 이는 두 변수간의 아무런 관계가 없다고 볼 수 있습니다. 

 

 

출처: https://www.youtube.com/watch?v=Se7mWTBRfCc

 

 

위의 수치는 상관계수입니다. 상관계수가 0일때는 두 변수간의 관계가 선형 관계라고 말하기 힘든 상태입니다.

어찌됐든, 상관계수가 0이면 두 변수 간의 관계는 없다 라는 점만 기억해주시면 됩니다. 

 

 

 

 

 

상관계수는 직선 관계만을 나타낼 수 있습니다. 꺽인 그래프는 상관 관계나 상관 계수로써 측정 혹은 표현이 불가능합니다. 

이러한 데이터를 가지고서는 상관관계를 말하는 것은 의미가 없습니다. 

 

자, 이제 pandas로 데이터를 불러와서 공분산과 상관관계 보겠습니다.

 

데이터를 불러왔습니다. 

 

 

각 변수간 상관관계는 corr 를 통해 확인할 수 있습니다. 직접 변수끼리(=데이터프레임의 칼럼끼리) 볼 수도 있고 데이터프레임에 corr() 메서드를 넣으면 모든 변수(=컬럼)간의 상관관계를 확인할 수 있습니다. 

 

 

필요한 칼럼과 전체 칼럼 간의 상관관게를 볼지 전체를 그대로 볼지는 위 코드를 보면서 이해하시면 될 것 같습니다 :) 

 

정리하자면, 

 

상관관계는

-  공분산은 두 변수간의 단위로 인한 모호한 크기량을 갖고 있는데, 이를 표준화하였고 '상관계수'라고 합니다. 

-  '0' 이면 선형관계가 없습니다. 

-  '선형'관계에만 통용됩니다. (2차함수와 같은 데이터 분포도에서는 상관관계 파악이 어렵습니다.)

-  '이상치'에 민감하게 반응합니다. 기댓값에 기반하기 때문이죠. 

- 상관관계는 오직 두 변수가 직선형의 그래프를 그리는지만 확인한다.

- 독립이면 상관관계가 없지만, 상관관계가 없다고 독립인 것은 아니다.

 

도움이 되었기를 바랍니다. 

아래 출처들이 많은 공부가 됐으니 여유가 된다면 살펴보시길 권합니다 :) 

 

-참고- 

https://www.youtube.com/watch?v=Se7mWTBRfCc

 

https://rfriend.tistory.com/405

 

[Python pandas] 그룹 별 변수 간 상관관계 분석 (correlation with columns by groups)

이번 포스팅에서는 그룹 별로 변수 간 상관관계 분석 (correlation with columns by groups) 하는 방법을 소개하겠습니다. Python pandas는 Pearson Correlation Coefficient를 구할 수 있는 corr(), corrwith()..

rfriend.tistory.com

 

https://freshrimpsushi.tistory.com/57

 

피어슨 상관계수 Pearson Correlation Coefficient

다음과 같이 정의된 $\rho = \rho(X,Y)$ 를 피어스 상관계수라고 한다. $$\displaystyle \rho = { {\text{Cov} (X,Y)} \over {\sigma_X \sigma_Y} } $$ (피어슨) 상관 계수는 두 변수가 서로 (선형) 상관 관계를..

freshrimpsushi.tistory.com

https://freshrimpsushi.tistory.com/536

 

상관관계가 없다고 독립인 것은 아니다

독립이면 상관관계가 없지만, 상관관계가 없다고 독립인 것은 아니다. 상관관계가 없을 때 독립인 경우, 즉 필요충분조건이 되는 경우는 확률변수가 정규분포를 따를 때다. 왼쪽의 경우에 양의 상관관계, 오른쪽..

freshrimpsushi.tistory.com