[scipy] scipy 라이브러리의 stats.pearsonr로 상관계수와 p-value 구하기

·2024년 12월 29일

scipy.stats의 pearsonr

from scipy.stats import pearsonr
  • pearsonr(col1, col2)
  • 반환값: (상관계수, p-value)

예시

데이터셋

teams_small 데이터셋의 'points' 컬럼과 나머지 컬럼의 상관관계와 p-value를 구하고자 한다.

코드

from scipy.stats import pearsonr

for col in teams_small.columns:
    if col != 'points' and col != 'team':
        r = pearsonr(teams_small[col], teams_small['points'])[0]
        p = pearsonr(teams_small[col], teams_small['points'])[1]
        result = '기각' if p > 0.05 else '수용⭐️'
        print(f'points와 {col} 사이의 상관계수: {round(r, 3)}, p-value: {p}, 결과: {result}')
        print('\n')

pearson 상관계수인 'r'과, p-value인 p를 구한 후, p 값이 0.05보다 작아 가설을 수용할 수 있는 경우 result 변수에 '수용', 가설이 기각되는 경우 '기각'을 저장하여 출력한다.

결과

points와 home win/total win 사이의 상관계수: -0.08, p-value: 0.7388204708826459, 결과: 기각

points와 Shots 사이의 상관계수: 0.886, p-value: 1.9841949342310615e-07, 결과: 수용⭐️

points와 Shot on Target 사이의 상관계수: 0.944, p-value: 4.3736105388383776e-10, 결과: 수용⭐️

points와 Foul 사이의 상관계수: -0.44, p-value: 0.051937891793583275, 결과: 기각

points와 Yellow card 사이의 상관계수: -0.389, p-value: 0.09021026595025734, 결과: 기각

points와 Red card 사이의 상관계수: -0.386, p-value: 0.09298335083845123, 결과: 기각
profile
To Dare is To Do

0개의 댓글