본문 바로가기

Data/Python

[Data/Python] 상관분석

[이론]

회귀분석 전에 상관분석으로 선형성이 있는지 확인해야함.

선형성이 없는걸로 선형 회귀분석을 하면 안됨.

 

상관분석

  • 연속형 두 변수간의 직선적(선형)관계 정도를 검정하는 통계 분석 방법
  • 상관관계는 인과관계를 의미하지 않음. 
  • A와 B 간에 높은 상관관계가 산출되었을 때  우연일 수도 있다.
  • 두 변수가 비선형관계이거나 우연히 상관관계가 높을 수 있어서 상관계수 절댓값이 1에 가까워도 상관관계가 높지 않을 수 있고, 0에 가까워도 상관관계가 없는건 아닐 수 있음
  • 시계열 자료처럼 독립적이지 않은 자료에 대해 상관계수 사용x
  • 상관계수는 원인-결과로 해석x

선형성이 나올 수는 있지만 인과관계는 없음

 

 

 

산점도

두 개의 숫자형 데이터를 직교좌표계에 표시하여 두 변수 간의 관계를 나타내는 방법

- 산점도를 통해 확인할 사항

  • 두 변수 간에 선형관계 존재하는지
  • 두 변수간에 함수관계가 존재하는지
  • 이상점이 존재하는지
  • 몇 개의 그룹으로 나누어 구분할 수 있는지

산점도를 통해서 인과관계는 알 수 없다!!!

 

 

 

상관계수 

  • 산점도를 통한 연관성 파악에 대해 계략적인 객관성 필요
  • 두 변수 사이의 상관관계의 정도를 나타내는 수치(선형성이 얼마나 강한가를 표현)
  • -1 ~ 1 사이의 범위를 가짐. 절댓값이 1에 가까울수록 강한 상관관계를 의미
  • 절댓값이 0.3일 때부터 선형성이 있다고 판단

r=0 -> 선형 관계 x

 

 

피어슨 상관계수

  • 두 변수 간의 선형관계의 방향과 강도가 어느 정도인지 측정
  • 두 변수의 정규성 가정. x 또는 y 변수 하나만 정규성을 가져도 상관계수 구할 수는 있으나 둘다 갖추지 않으면 피어슨 상관계수가 맞지 않음

중요오. 표준편차로 나누어서 단위와 scale 차이를 제거함(정규화)

 

 

스피어만 상관계수

  • 서열척도(등수를 갖고 있음)를 갖고 있는 두 변수들의 상관관계 측정

 

켄달 상관계수

  • 심사위원...
  • 두 변수를 크기 순으로 두고 순위가 일치하는 정도로 상관계수 정의
  • x의 순위를 일치시키기 위해 y를 바꾸어야 하는 정도로 상관관계 평가

예시 기억

 

상관계수로 기울기 알 수 없음(인과관계 아님)

 

0에 가깝다고 관계가 없는건 아닐 수 있음(비선형관계).크다고 관계가 강한건 아닐 수 있음(이상치 없애면 선형관계x)

 

 

 

 

[실습]

pandas - corr() : pandas에서 상관계수만 빠르게 뽑는 메서드

scipy - pearsonr() : Pearson 상관분석 실시

scipy - spearmanr() : Spearman 상관분석 실시

scipy - kendalltau() : Kendall 상관분석 실시

 

 

실습1

 

 

 

실습2

groupby 쓰는거 연습해야될듯

 

 

실습3