데이터 분석을 진행 할 때 과연 이 변수들 간의 서로 관계가 있는지 없는지에 대한 의문을 갖게 된다.
상관관계에 대한 설명이 잘 되어있는 블로그가 있어서 그것을 참조하였기에 올려본다.
https://eunhye-zz.tistory.com/29
데이터 자료 형태에 따른 상관분석 방법
1. 상관분석(Correlation Analysis) 두 확률 변수 간에 어떤 선형적 관계를 가지는지 분석하는 기법으로 상관계수를 이용하여 측정합니다. 하지만 두 변수간에 선형적인 관계가 있다고 해서 인과관계
eunhye-zz.tistory.com
그 때 우리가 어떠한 두 변수 사이에 상관 관계가 있는지 없는 지를 알아보고 싶을 때 우리는 그 데이터를 가지고 상관 분석을 하게 된다.
여기서 주의해야 할점은 우리가 밑에서 알아보는 것은 두 변수 사이간의 어떠한 상관관계가 있는지, 어느 정도 강한 관계에 있는가를 측정하는 단순상관분석(Simple Correlation Analysis)이며,
만약 2개 이상의 변수간 관계 강도를 측정하는 상관분석을 하고 싶다면 다중상관분석을 사용해야 된다.
1. 단순 상관 분석 이란?
두 변수간에 어떤 선형적 관계를 가지는지 분석하는 기법으로 상관계수를 이용하여 분석하는 방법이다.
두 변수는 서로 독립적인 관계이거나 상관된 관계일 수 있으며 이때 두 변수간의 관계의 강도를 상관관계(Correlation)이라 한다.
상관관계의 정도를 파악하는 상관 계수는 두 변수간의 연관된 정도를 나타낼 뿐 인과관계를 설명하는 것은 아니다. 두 변수간에 원인과 결과의 인과관계가 있는지에 대한 것은 회귀분석을 통해 인과관계의 방향, 정도와 수학적 모델을 확인해 볼 수 있다.
(출처 : '상관 분석' 나무위키)
2. 단순 상관 계수(Correlation Coefficient)
표본 상관계수인 r은 r = X와 Y가 함께 변하는 정도/X와 Y가 각각 변하는 정도로 표현 할 수 있다.
r의 값이 +1에 가까우면 양의 상관관계(Positive Correlation) 라고 하며 r의 값이 -1에 가까우면 음의 상관관계(Negative Correlation)라고 말할 수 있다. 그리고 r값이 0에 가까우면 서로 선형적인 상관관계가 없다. 라고 말할 수 있게 된다.
3. 단순 상관 분석의 로드맵
자료형의 따른 상관분석의 방법을 제시해 놓은 표이다. 우리는 여기서 가장 많이 쓰이는 피어슨과 스피어만 켄달을 알아보고자 한다.
4. 단순 상관 계수의 종류
우리가 두 변수 간의 상관 관계, 상관 계수를 얘기 할 때는 크게 피어슨 상관 계수(Pearson Correlation Coefficient), 스피어만 상관계수(Spearman Correlation Coefficient), 켄달의 타우(Kendall's Tau)를 얘기 한다.
4-1. 연속형 VS 연속형
1). 피어슨 상관 계수(Pearson Correlation Coefficient)
연속형 자료인 두 변수 X,Y간의 선형 상관 관계를 계량화한 수치로 -1 ~ 1 사이의 범위를 가지며, 일반적으로는 상관관계는 피어슨 상관관계를 의미한다.
두 변수가 정규분포를 가정하는 경우 사용하는 방법으로 모수적 방법이라고 하며, 연속형인 경우 외에도 등간척도(간격척도)나 비례척도인 변수들 간의 분석에서도 피어슨 상관 계수가 사용된다.
피어슨 상관계수인 r은 r = X와 Y가 함께 변하는 정도/X와 Y가 각각 변하는 정도로 표현 할 수 있다.
r의 값이 +1에 가까우면 양의 상관관계(Positive Correlation) 라고 하며 r의 값이 -1에 가까우면 음의 상관관계(Negative Correlation)라고 말할 수 있다. 그리고 r값이 0에 가까우면 서로 선형적인 상관관계가 없다. 라고 말할 수 있게 된다.
간단하게 코드 예시를 본다면
import pandas as pd
data = {"col1":[1,2,3,4,5,6,7,8,9,10],
"col2":[1,4,2,8,16,32,34,37,47,50],
"col3":[10,9,4,6,8,9,11,12,9,7]}
data = pd.DataFrame(data)
data.corr(method = 'pearson')
2). 스피어만 상관계수(Spearman Correlation Coefficient)
두 변수 X,Y가 연속형 자료이나 정규성을 만족하지 않는 경우, 순서척도인 경우 스피어만 상관계수를 사용한다.
스피어만 상관계수는 값에 순위를 매겨 순위에 대한 상관계수 값을 구하며, 정규성을 만족하지 않기에 비모수적 방법이라고 할 수 있다. ++
순위를 이용하기 때문에 연속형 변수가 아닌 순서형 변수인 경우에도 사용할 수 있다.
스피어만 상관 계수는 데이터가 서열척도인 경우 즉 자료의 값 대신 순위를 이용하는 경우의 상관 계수로서, 데이터를 작은 것부터 차례로 순위를 매겨 서울 순서로 바꾼 뒤 순위를 이용해 상관 계수를 구한다.
두 변수 간의 연관 관계가 있는지 없는지를 밝혀주며 자료에 이상점이 있거나 표본크기가 작을 때 유용하게 쓰인다.
스피어만 상관 계수는 -1과 1 사이의 값을 가지는데 두 변수 안의 순위가 완전히 일치하면 +1이고, 두 변수의 순위가 완전히 반대이면 -1이 된다.
예를 들어 수학을 잘하는 학생이 영어를 잘하는 것과 상관있는지 없는지를 알아보는데 쓰일 수 있다.
코드 예시)
data.corr(method = 'spearman')
3) Kendall's Tau
켄달의 타우는 두 변수들간의 순위를 비교해서 연관성을 계산하는 방식이다.
스피어만 상관계수와 유사하며 계수 값은 조금 다르지만 p-value는 거의 비슷한 값을 가지며 처리 방법에 따라서
Kendall's tau-a, tau-b, tau-c가 있다.
켄달의 타우는 상관계수(상관의 정도)를 보기보다는 X변수가 증가할 때 Y 변수가 증가하는지 또는 감소하는지
여부 정도로만 확인을 한다.
데이터 샘플을 수가 적거나 순위에서 동률이 많은 경우 유용하게 사용할 수 있고, 상관계수 값은 -1 ~ 1 사이의 범위를 갖는다.
코드 예시)
data.corr(method = 'kendall')
5) 상관계수 시각화
변수들이 많아지게 되면 표로 보고 파악하는 것이 힘들어 지게 된다. 이러한 상황일 때 상관관계를 더욱더 편하게 볼 수 있는 시각화가 존재 한다. 시각화 라이브러리인 seaborn에서 heatmap이라는 시각화를 지원하는데 시각화를 아직 블로그에 작성을 하지 않았지만 앞으로 차차 정리를 해볼 예정이다.
seaborn의 공식문서를 자세히 보면 다양한 사용법이 나와있다.
https://seaborn.pydata.org/index.html
seaborn: statistical data visualization — seaborn 0.13.2 documentation
seaborn: statistical data visualization
seaborn.pydata.org
import seaborn as sns
sns.heatmap(data.corr(), annot=True, cmap="coolwarm", vmax=1, vmin=-1)
매개변수
annot : 표에 값 표시
cmap : 색상 참고 matplot-color
vmax : 오른쪽 컬러바 최댓값 설정
vmin : 오른쪽 컬러바 최솟값 설정
등을 이용해서 직관적으로 볼 수 있는 시각화를 진행 할 수 있다.
@@++
'통계' 카테고리의 다른 글
주성분 분석(PCA : Principal Component Analysis) (2) | 2024.03.14 |
---|---|
모수와 비모수 (2) | 2024.03.13 |
회귀분석 (0) | 2024.02.14 |
분산분석, F-value, T-value 기술통계량 (0) | 2024.02.14 |
카이제곱분포, 교차분석 (2) | 2024.02.14 |