데이터 시각화를 위해 Seaborn 라이브러리를 활용합니다. 회귀 모델을 구축할 때는 다중공선성(multicollinearity) 여부를 반드시 확인해야 합니다. 이는 연속형 변수들의 모든 조합 사이에 존재하는 상관관계를 파악해야 하기 때문입니다. 만약 변수 간에 다중공선성이 존재한다면, 모델의 신뢰성을 해치지 않도록 해당 요소를 데이터에서 제거해야 합니다.
한편, 현실 세계의 데이터는 대부분 선형적이지 않은 비선형(non-linear) 형태를 띠고 있습니다. 따라서 이러한 비선형 데이터를 효과적으로 모델에 피팅(fitting)하기 위한 방법을 찾아야 합니다.
이번 글에서는 앤스콤(Anscombe) 데이터셋을 사용하여 비선형 데이터를 시각화하고, Seaborn의 lmplot 함수를 활용해 이를 모델에 적용하는 과정을 살펴보겠습니다.
예제 코드
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
my_df = sb.load_dataset('anscombe')
sb.lmplot(x="x", y="y", data=my_df.query("dataset == 'I'"))
plt.show()실행 결과

코드 설명
- 필요한 패키지들(pandas, seaborn, matplotlib)을 임포트합니다.
- 입력 데이터로 사용할 'anscombe' 데이터셋을 seaborn 라이브러리에서 불러옵니다.
- 불러온 데이터는 데이터프레임(dataframe) 형태로 저장됩니다.
load_dataset함수를 사용하여 데이터셋을 로드합니다.lmplot함수를 사용하여 데이터를 시각화합니다.- 이때 데이터프레임을 매개변수로 전달하며, x축과 y축에 해당하는 값도 함께 지정합니다.
query메서드를 통해 dataset이 'I'인 데이터만 필터링하여 사용합니다.- 최종적으로 시각화된 그래프가 화면에 출력됩니다.
lmplot 함수는 산점도 위에 회귀선(regression line)을 함께 그려주기 때문에, 데이터가 선형 관계를 따르는지 여부를 직관적으로 판단하는 데 매우 유용합니다. 앤스콤 데이터셋은 동일한 통계 지표를 가지면서도 전혀 다른 분포를 보여주는 대표적인 예제로, 시각화의 중요성을 강조할 때 자주 활용됩니다.