콘텐츠로 건너뛰기

판다스 상관관계 분석: 간편하게 사용하는 방법과 고치는 방법

[

NumPy, SciPy, and pandas: Python에서의 상관관계

Mirko Stojiljković에 의해 작성됨

상관계수는 데이터셋의 변수 또는 특성들 간의 관련성을 측정하는 값입니다. 이러한 통계량은 과학과 기술에서 매우 중요하며, Python에는 이를 계산할 수 있는 훌륭한 도구들이 있습니다. SciPy, NumPy, 그리고 pandas의 상관관계 함수는 빠르고 포괄적이며 잘 문서화되어 있습니다.

이 튜토리얼에서는 다음을 배우게 됩니다:

  • Pearson, Spearman, 그리고 Kendall 상관계수가 무엇인지
  • SciPy, NumPy, 그리고 pandas의 상관계수 함수를 사용하는 방법
  • 데이터, 회귀선, 그리고 상관계수 행렬을 Matplotlib을 사용하여 시각화하는 방법

먼저 상관관계에 대한 설명을 시작하고, 세 가지 간단한 예제를 살펴보고, 마지막으로 NumPy, SciPy, 그리고 pandas의 상관관계에 대한 자세한 내용을 다룰 것입니다.

무료 보너스: 여기를 클릭하여 NumPy 실력 향상을 위한 최고의 튜토리얼, 동영상, 그리고 책에 대한 자료를 얻을 수 있는 무료 NumPy 자료 가이드에 액세스하세요.

상관관계

통계데이터 과학은 종종 데이터셋의 두 개 이상의 변수(또는 특성) 간의 관계에 관심이 있습니다. 데이터셋의 각 데이터 포인트는 관측값이고, 특성은 해당 관측값의 속성 또는 특징이 됩니다.

작업하는 데이터셋마다 변수들과 관측값들이 사용됩니다. 예를 들어, 다음과 같은 것들에 대한 이해가 필요할 수 있습니다:

위의 예시에서 키, 슈팅 정확도, 경력, 연봉, 인구 밀도, 그리고 국내 총생산은 변수 또는 특성입니다. 각 선수, 직원, 그리고 각 국가에 대한 데이터는 관측값입니다.

데이터가 테이블의 형태로 나타낼 경우, 해당 테이블의 행은 일반적으로 관측값이고, 열은 변수입니다. 이러한 상황에서 변수들 간의 상관관계를 파악하면 데이터에 대한 통찰력과 이해력을 얻을 수 있습니다.

NumPy 상관계수 계산 예제

Python에서 상관계수를 계산하는 방법을 알아봅시다. NumPy는 객체 간의 선형 관계를 평가하는 기능을 제공합니다. 다음은 NumPy를 사용하여 상관계수를 계산하는 간단한 예제입니다.

import numpy as np
# 두 변수의 데이터 생성
var1 = np.array([1, 2, 3, 4, 5])
var2 = np.array([5, 6, 7, 8, 9])
# 상관계수 계산
corr_coef = np.corrcoef(var1, var2)
print(corr_coef)

이 예제에서는 두 개의 변수 var1var2를 생성하고, np.corrcoef 함수를 사용하여 상관계수를 계산합니다. 계산된 상관계수는 corr_coef 변수에 저장되고, 출력되어 화면에 표시됩니다.

SciPy 상관계수 계산 예제

다음으로, SciPy를 사용하여 상관계수를 계산하는 방법을 살펴보겠습니다. SciPy는 다양한 통계적 기능을 제공하는 과학 계산 라이브러리입니다. 상관계수를 계산하기 위해 scipy.stats 모듈의 pearsonr 함수를 사용할 수 있습니다.

from scipy.stats import pearsonr
# 두 변수의 데이터 생성
var1 = [1, 2, 3, 4, 5]
var2 = [5, 6, 7, 8, 9]
# 상관계수 계산
corr_coef, p_value = pearsonr(var1, var2)
print(corr_coef)

위의 예제에서는 pearsonr 함수를 사용하여 var1var2 변수의 상관계수를 계산합니다. 계산된 상관계수는 corr_coef 변수에 저장되고, 출력되어 화면에 표시됩니다. 또한, p-값도 함께 반환됩니다.

pandas 상관계수 계산 예제

마지막으로, pandas를 사용하여 상관계수를 계산하는 방법을 살펴보겠습니다. pandas는 데이터 분석에 널리 사용되는 파이썬 라이브러리입니다. 상관계수 계산은 pandas의 corr 메서드를 사용하여 수행할 수 있습니다.

import pandas as pd
# 데이터프레임 생성
data = {'var1': [1, 2, 3, 4, 5],
'var2': [5, 6, 7, 8, 9]}
df = pd.DataFrame(data)
# 상관계수 계산
corr_matrix = df.corr()
print(corr_matrix)

위의 예제에서는 data 딕셔너리를 사용하여 데이터프레임을 생성하고, df.corr() 메서드를 사용하여 상관계수 행렬을 계산합니다. 계산된 상관계수 행렬은 corr_matrix 변수에 저장되고, 출력되어 화면에 표시됩니다.

상관관계의 시각화

Matplotlib을 사용하여 데이터, 회귀선, 그리고 상관계수 행렬을 시각화하는 방법을 알아봅시다. 다음은 X-Y 플롯과 상관계수 행렬의 히트맵을 그리는 간단한 예제입니다.

import numpy as np
import matplotlib.pyplot as plt
# 데이터 생성
x = np.random.rand(100)
y = 2 * x + np.random.normal(scale=0.1, size=100)
# X-Y 플롯
plt.scatter(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('X-Y Plot with Regression Line')
plt.show()
# 상관계수 행렬
data = np.vstack([x, y])
corr_matrix = np.corrcoef(data)
plt.imshow(corr_matrix, cmap='hot', interpolation='nearest')
plt.colorbar()
plt.title('Correlation Matrix')
plt.xticks(range(2), ['x', 'y'])
plt.yticks(range(2), ['x', 'y'])
plt.show()

위의 예제에서는 NumPy로 임의의 데이터(xy)를 생성하고, Matplotlib을 사용하여 X-Y 플롯과 상관계수 행렬의 히트맵을 그립니다. X-Y 플롯은 산점도로 표시되며, 상관계수 행렬은 색상 맵(hot)을 사용하여 시각화됩니다.

결론

이 튜토리얼에서는 Python에서 SciPy, NumPy, 그리고 pandas를 사용하여 상관계수를 계산하는 방법을 다루었습니다. 상관계수는 데이터셋의 변수 간의 관련성을 평가하는 데 매우 유용한 통계량입니다. 이러한 통계적 지표를 사용하여 데이터를 이해하고 분석하는 데 도움이 되었습니다.

뿐만 아니라, 데이터 및 계산 결과를 시각화하여 이해하기 쉽고 직관적인 결과를 얻을 수 있었습니다. Matplotlib을 사용하여 X-Y 플롯과 상관계수 행렬의 히트맵을 그림으로써 시각화의 중요성을 확인할 수 있었습니다.

Python에서 상관계수를 계산하고 시각화하는 방법을 배워 데이터 분석과 데이터 과학 프로젝트에 적용할 수 있을 것입니다.