상관관계란 무엇인가?
pandas.DataFrame.corr 메서드를 사용하면 NULL 값을 제외한 상태에서 열들 간의 쌍별(pairwise) 상관관계를 손쉽게 계산할 수 있습니다. 상관계수는 두 변수 사이의 선형 관계가 얼마나 강한지를 나타내는 지표이며, 그 값은 항상 -1부터 1 사이에 위치합니다.
값이 1에 가까울수록 강한 양의 선형 관계를, -1에 가까울수록 강한 음의 선형 관계를 의미합니다. 반대로 0에 가깝다면 두 변수 사이에 선형 관계가 거의 없다는 뜻입니다.
구현 절차
Pandas 데이터프레임에서 두 숫자 열 사이의 상관관계를 구하려면 다음 단계를 따르면 됩니다.
- 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
- 2차원이며 크기가 가변적이고 잠재적으로 이질적인(heterogeneous) 표 형태의 데이터를 담는 Pandas 데이터프레임을 생성합니다.
- 두 열의 값을 비교하고
col1.corr(col2)를 호출하여 상관계수를 계산합니다. - 계산된 상관계수를 콘솔에 출력합니다.
- show() 메서드를 사용해 그래프를 화면에 표시합니다.
예제 코드
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
df = pd.DataFrame({'lab': [1, 2, 3], 'value': [3, 4, 5]})
col1 = df['lab']
col2 = df['value']
plt.plot(col1, col2)
print("The correlation coefficient is: ", col1.corr(col2))
plt.show()실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
The correlation coefficient is: 1.0


결과 해석
이 예제에서 상관계수는 1.0으로 나타났습니다. 이는 두 열이 완전한(perfect) 양의 상관관계를 가진다는 의미입니다. 실제로 모든 데이터 포인트가 하나의 직선 위에 정확히 놓여 있기 때문에, 그려진 그래프 역시 곧은 직선 형태로 표현됩니다.