Python에서 상관 테스트를 수행하는 방법(예제 포함)
두 변수 사이의 관계를 정량화하는 한 가지 방법은 두 변수 사이의 선형 연관성을 측정하는 Pearson 상관 계수를 사용하는 것입니다 .
항상 -1과 1 사이의 값을 취합니다. 여기서:
- -1은 완벽하게 음의 선형 상관 관계를 나타냅니다.
- 0은 선형 상관관계가 없음을 나타냅니다.
- 1은 완벽하게 양의 선형 상관 관계를 나타냅니다.
상관 계수가 통계적으로 유의한지 여부를 확인하려면 해당하는 t-점수와 p-값을 계산하면 됩니다.
상관계수(r)의 t-점수를 계산하는 공식은 다음과 같습니다.
t = r * √ n-2 / √ 1-r 2
그런 다음 p-값은 자유도가 n-2인 t-분포에 해당하는 양측 p-값으로 계산됩니다.
예: Python의 상관관계 테스트
두 변수 사이의 상관 계수가 통계적으로 유의한지 여부를 확인하려면 SciPy 라이브러리의 pearsonr 함수를 사용하여 Python에서 상관 테스트를 수행할 수 있습니다.
이 함수는 두 변수 간의 상관 계수와 양측 p-값을 반환합니다.
예를 들어 Python에 다음과 같은 두 개의 테이블이 있다고 가정합니다.
#create two arrays
x = [3, 4, 4, 5, 7, 8, 10, 12, 13, 15]
y = [2, 4, 4, 5, 4, 7, 8, 19, 14, 10]
pearsonr 함수를 가져와 두 테이블 간의 Pearson 상관 계수를 계산할 수 있습니다.
from scipy. stats . stats import pearsonr #calculation correlation coefficient and p-value between x and y pearsonr(x, y) (0.8076177030748631, 0.004717255828132089)
결과를 해석하는 방법은 다음과 같습니다.
- 피어슨 상관계수(r): 0.8076
- 양측 p-값: 0.0047
상관계수는 1에 가까우며, 이는 두 변수 사이에 강한 양의 연관성이 있음을 나타냅니다.
그리고 해당 p-값이 0.05보다 작으므로 두 변수 사이에 통계적으로 유의미한 연관성이 있다고 결론을 내립니다.
피어슨 함수에서 개별 상관 계수와 p-값을 추출할 수도 있습니다.
#extract correlation coefficient (rounded to 4 decimal places) r = round(pearsonr(x, y)[ 0 ], 4) print (r) 0.8076 #extract p-value (rounded to 4 decimal places) p = round(pearsonr(x, y)[ 1 ], 4) print (p) 0.0047
이 값은 원래 pearsonr 함수의 출력에 비해 읽기가 조금 더 쉽습니다.
추가 리소스
다음 튜토리얼에서는 상관 계수에 대한 추가 정보를 제공합니다.
피어슨 상관 계수 소개
“강한” 상관관계로 간주되는 것은 무엇입니까?
피어슨의 상관관계에 대한 다섯 가지 가설