상관계수: 두 변수 간의 관계 정도를 측정하는 방법중 하나
피어슨 상관 계수
● 피어슨 상관 계수는 선형 상관 관계를 측정합니다.
즉, 두 변수 간의 관계가 직선으로 나타낼 수 있는 경우 사용할 수 있습니다.
● 피어슨 상관 계수는 -1부터 1까지의 값을 가집니다.
1에 가까울수록 양의 상관 관계가 강하며, -1에 가까울수록 음의 상관 관계가 강합니다.
0은 두 변수 간에 상관 관계가 없음을 나타냅니다.
● 피어슨 상관 계수는 두 변수 모두 정규 분포를 따를 때 가장 잘 작동합니다.
또한, 이상치(outlier)가 존재할 경우에는 상관 관계를 왜곡할 수 있으므로 이를 제거하거나 대체하는 등의 전처리가 필요 할 수 있습니다.
피어슨 상관 계수 구하기
1. 두 변수의 공분산 구하기
2. 두 변수의 표준편차 구하기
3. 공분산을 두 변수의 표준편차의 곱으로 나눠준다.
ex1. 예시 데이터 생성후 만들어보기
import numpy as np
def pearson_correlation(x, y):
# 두 변수의 공분산 계산
covariance = np.cov(x, y)[0][1]
# 두 변수의 표준편차 계산
std_x = np.std(x)
std_y = np.std(y)
# 공분산을 표준편차의 곱으로 나눠서 피어슨 상관계수 계산
correlation = covariance / (std_x * std_y)
return correlation
x = [1, 2, 3, 4, 5]
y = [5, 4, 3, 2, 1]
correlation = pearson_correlation(x, y)
print(correlation)
출력 결과
-1.0
중간 코드 해석
covariance = np.cov(x, y)[0][1]
넘파이 라이브러리에는 공분산을 구할 수 있는 cov()함수가 존재
첫번째 행의 두번째 열에 위치한 값을 가져와서 covarian변수에 할당한 코드
스피어만 상관 계수(Spearman Correlation Coefficient)
- 스피어만 상관 계수는 두 변수 간의 관계를 측정할 때, 선형 관계가 아닌 순위를 기준으로 측정합니다. 즉, 두 변수 간의 관계를 나타내는 순서를 비교합니다.
- 스피어만 상관 계수는 -1부터 1까지의 값을 가지며, 피어슨 상관 계수와 마찬가지로 1에 가까울수록 양의 상관 관계가 강하며, -1에 가까울수록 음의 상관 관계가 강합니다. 0은 두 변수 간에 상관 관계가 없음을 나타냅니다.
- 스피어만 상관 계수는 데이터가 정규 분포를 따르지 않거나 이상치가 있어도 잘 작동합니다. 또한, 순위를 기준으로 측정하기 때문에 변수 간의 비선형적인 관계도 잘 측정할 수 있습니다. 따라서, 특히 순위형 변수에 대한 상관 계수를 측정할 때 많이 사용됩니다.