Python에서 상관 행렬을 만드는 방법


두 변수 사이의 관계를 정량화하는 한 가지 방법은 두 변수 사이의 선형 연관성을 측정하는 Pearson 상관 계수를 사용하는 것입니다 .

-1과 1 사이의 값을 사용합니다. 여기서:

  • -1은 완벽하게 음의 선형 상관 관계를 나타냅니다.
  • 0은 선형 상관관계가 없음을 나타냅니다.
  • 1은 완벽하게 양의 선형 상관 관계를 나타냅니다.

상관 계수가 0에서 멀어질수록 두 변수 간의 관계가 더 강해집니다.

그러나 어떤 경우에는 여러 변수 쌍 간의 상관 관계를 이해하고 싶습니다. 이러한 경우 여러 쌍의 변수 조합 간의 상관 계수를 보여주는 정사각형 테이블인 상관 행렬을 만들 수 있습니다.

이 튜토리얼에서는 Python에서 상관 행렬을 만들고 해석하는 방법을 설명합니다.

Python에서 상관 행렬을 만드는 방법

Python에서 상관 행렬을 만들려면 다음 단계를 따르세요.

1단계: 데이터세트를 만듭니다.

 import pandas as pd

data = {'assists': [4, 5, 5, 6, 7, 8, 8, 10],
        'rebounds': [12, 14, 13, 7, 8, 8, 9, 13],
        'points': [22, 24, 26, 26, 29, 32, 20, 14]
        }

df = pd. DataFrame (data, columns=['assists','rebounds','points'])
df

   assist rebound points
0 4 12 22
1 5 14 24
2 5 13 26
3 6 7 26
4 7 8 29
5 8 8 32
6 8 9 20
7 10 13 14

2단계: 상관 행렬을 만듭니다.

 #create correlation matrix
df. corr ()

                assists rebound points
assists 1.000000 -0.244861 -0.329573
rebounds -0.244861 1.000000 -0.522092
points -0.329573 -0.522092 1.000000

#create same correlation matrix with coefficients rounded to 3 decimals 
df. corr (). round (3)
	       assists rebound points
assists 1.000 -0.245 -0.330
rebounds -0.245 1.000 -0.522
points -0.330 -0.522 1.000

3단계: 상관 행렬을 해석합니다.

표의 대각선에 있는 상관 계수는 각 변수가 그 자체와 완벽하게 상관되어 있기 때문에 모두 1과 같습니다.

다른 모든 상관 계수는 다양한 쌍별 변수 조합 간의 상관 관계를 나타냅니다. 예를 들어:

  • 어시스트와 리바운드의 상관계수는 -0.245 입니다.
  • 어시스트와 포인트 사이의 상관계수는 -0.330 입니다.
  • 리바운드와 포인트 사이의 상관계수는 -0.522 입니다.

4단계: 상관 행렬을 시각화합니다(선택 사항).

Pandas에서 사용할 수 있는 스타일 옵션을 사용하여 상관 행렬을 시각화할 수 있습니다.

 corr = df. corr ()
corr. style . background_gradient (cmap='coolwarm')

Python의 상관 행렬

cmap 인수를 수정하여 다양한 색상의 상관 행렬을 생성할 수도 있습니다.

 corr = df. corr ()
corr. style . background_gradient (cmap=' RdYlGn ') 

Python에서 matplotlib를 사용한 상관 행렬

 corr = df. corr ()
corr. style . background_gradient (cmap=' bwr ') 

Pandas를 사용한 상관 행렬

 corr = df. corr ()
corr. style . background_gradient (cmap=' PuOr ') 

Python의 상관 행렬 예

참고 : cmap 인수의 전체 목록은 matplotlib 설명서를 참조하세요.

의견을 추가하다

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