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 함수의 출력에 비해 읽기가 조금 더 쉽습니다.

추가 리소스

다음 튜토리얼에서는 상관 계수에 대한 추가 정보를 제공합니다.

피어슨 상관 계수 소개
“강한” 상관관계로 간주되는 것은 무엇입니까?
피어슨의 상관관계에 대한 다섯 가지 가설

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다