데이터 분석에서 숫자형 변수 두 개를 가지고 선형적인 관계를 시각적으로 파악하고 싶다면, Seaborn의 regplot()을 활용해 볼 수 있습니다. 이번 포스팅에서는 나이(Age)와 월급(MonthlyIncome) 간의 관계를 회귀선(Regression Line)으로 시각화하는 예시를 살펴보겠습니다.
아래 코드는 df 데이터프레임에서 Age(x축)와 MonthlyIncome(y축) 간의 관계를 regplot()을 이용해 시각화합니다.
python
코드 복사
import seaborn as sns
import matplotlib.pyplot as plt
# 나이와 월급 간의 관계 확인
sns.regplot(x=df['Age'], y=df['MonthlyIncome'])
plt.title("Age vs. MonthlyIncome (Regplot)")
plt.xlabel("Age")
plt.ylabel("MonthlyIncome")
plt.show()
sns.regplot(x=df['Age'], y=df['MonthlyIncome'])x와 y 파라미터로 각각 데이터프레임의 컬럼을 지정plt.title(), plt.xlabel(), plt.ylabel()plt.show()위 코드를 실행하면, 데이터 포인트들이 (Age, MonthlyIncome) 좌표 상에 분포하고, 그 위에 회귀선이 그려져 있습니다.
fit_reg=False: 회귀선을 그리지 않고 단순 산점도만 보고 싶다면 fit_reg=False 옵션 활용 가능python
코드 복사
sns.regplot(x='Age', y='MonthlyIncome', data=df, fit_reg=False)
order: 단순 선형이 아니라 다항 회귀를 적용하고 싶다면 order=2 등으로 지정 가능ci=None: 회귀선의 신뢰 구간(Confidence Interval)을 제거하고 싶다면python
코드 복사
sns.regplot(x='Age', y='MonthlyIncome', data=df, ci=None)
scatter_kws & line_kws: 산점도와 회귀선의 스타일(색, 투명도 등)을 세부 조정할 수 있음python
코드 복사
sns.regplot(
x='Age', y='MonthlyIncome', data=df,
scatter_kws={'alpha':0.5, 'color':'blue'},
line_kws={'color':'red'}
)
df[['Age', 'MonthlyIncome']].corr()로 실제 상관계수를 확인해, 그래프 해석을 수치적 지표로 보완sns.pairplot())을 사용하거나, Heatmap으로 상관계를 전체적으로 볼 수도 있음hue 옵션이 지원되는 그래프(예: lmplot)에서 부서(Department)나 직급(JobLevel) 등을 구분해 본다면, 나이-월급 관계가 집단별로 어떻게 달라지는지 드릴다운 가능python
코드 복사
sns.lmplot(data=df, x='Age', y='MonthlyIncome', hue='Department')
Seaborn의 regplot()은 산점도와 회귀선을 한 번에 보여주어, 두 숫자형 변수 간의 관계(특히 선형적 관계)를 직관적으로 파악하게 해주는 강력한 툴입니다.
예시처럼 Age(나이)가 많을수록 MonthlyIncome(월급)이 조금씩 올라간다는 사실을 한눈에 확인할 수 있죠.
하지만 기억해야 할 점은, 높은 상관관계(또는 회귀선 기울기)가 인과관계를 의미하지는 않는다는 것입니다. 추가로 도메인 지식, 통계 검증 등 여러 분석 기법을 통해 더 깊은 인사이트를 얻어야 할 필요가 있어 보인다.