Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

변수 중 하나가 이산 값일 때 Python의 lmplot 함수로 데이터를 피팅할 수 있을까?

회귀 모델을 구축할 때는 다중공선성(multicollinearity) 여부를 반드시 확인해야 합니다. 그 이유는 연속형 변수들의 모든 조합 사이에 존재하는 상관관계를 파악해야 하기 때문입니다. 만약 변수들 간에 다중공선성이 존재한다면, 모델의 신뢰성을 해치지 않도록 해당 상관관계를 데이터에서 제거하는 작업이 필요합니다.

이러한 분석 과정에서 유용하게 활용되는 것이 바로 Seaborn 라이브러리의 regplotlmplot 함수입니다. 두 함수는 선형 회귀에서 변수 간의 선형 관계를 시각화하는 데 도움을 줍니다.

regplot과 lmplot의 차이점

regplot 함수는 x축과 y축에 사용할 변수 값을 매우 유연하게 받아들입니다. NumPy 배열, Pandas Series 객체, Pandas DataFrame의 특정 변수나 값에 대한 참조 등 다양한 형식을 지원합니다.

반면 lmplot 함수는 반드시 data 매개변수에 데이터프레임을 지정해 주어야 하며, x와 y 변수 값은 문자열(컬럼 이름) 형태로 전달해야 합니다. 이러한 데이터 형식을 롱 폼(long-form) 데이터라고 부릅니다. 따라서 데이터가 이미 DataFrame으로 정리되어 있다면 lmplot이 더 편리한 선택이 될 수 있습니다.

예제 코드

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt

my_df = sb.load_dataset('tips')
sb.lmplot(x="size", y="tip", data=my_df)
plt.show()

실행 결과

변수 중 하나가 이산 값일 때 Python의 lmplot 함수로 데이터를 피팅할 수 있을까?

코드 설명

  • 먼저 필요한 패키지들을 임포트합니다.
  • Seaborn 라이브러리에서 제공하는 'tips' 데이터셋을 입력 데이터로 불러옵니다.
  • 불러온 데이터는 DataFrame 형태로 저장됩니다.
  • load_dataset 함수를 사용해 데이터셋을 손쉽게 로드할 수 있습니다.
  • lmplot 함수를 사용해 데이터를 시각화합니다.
  • 이때 DataFrame이 data 매개변수로 전달됩니다.
  • x축에는 'size'(인원 수), y축에는 'tip'(팁) 컬럼을 문자열로 지정합니다.
  • 최종적으로 생성된 회귀 그래프가 화면에 출력됩니다.

이처럼 변수 중 하나가 이산 값(discrete value)이라 하더라도 lmplot 함수를 활용하면 산점도 위에 선형 회귀선을 자동으로 그려 변수 간 관계를 한눈에 파악할 수 있습니다.