Data Science/데이터 분석

단변량 분석 (2) - 범주형

Boxya 2025. 4. 1. 20:40

[KT] AIVLE SCHOOL 5일차

 

범주형 변수 분석

  • 범주형 변수는 정해진 몇 개의 값이 여럿 모여있는 변수
  • 범주형 변수는 범주값 각각이 몇 개씩 포함되어 있는지, 전체에서 각각이 차지하는 비율은 어떤지를 확인해야 함
  • 즉 범주형 변수안에 포함된 범줏값 각각의 빈도수와 비율이 분석 대상

수치화

  • 범주형 변수는 범주별 빈도수와 비율을 기초 통계량을 통해 확인함
  • Pandas의 value_counts() 메소드는 범주형 변수에 포함된 범줏값 각각의 개수를 카운트 해 줌
    • normalize=True 옵션을 지정해 개수가 아닌 비율을 확인할 수 있음
  • 범줏값만 확인할 때는 unique() 메서드를 사용

시각화

  • 범주형 변수는 Bar Plot과 Pie Chart를 사용해 시각화 할 수 있음
  • 기초 통계량보다 좀 더 쉽게 데이터를 이해할 수 있음
  • Bar Plot
    • Bar Plot으로 범줏값의 크기를 비교
    • 범주 이름과 값이 필요하므로 집계 작업이 선행되어야 함.
    • Pandas의 value_counts()를 사용하여 집계
      • 집계 결과의 index: 범줏값 이름
      • 집계 결과의 values: 값
    • 집계 결과를 Matplotlib의 bar() 함수로 시각화, x축이 범줏값 이름, y축(height)이 비교할 값
      • temp = titanic['Pclass'].value_counts()
      • plt.bar(x=temp.index, height=temp.values) 
      • barh() 함수로 가로로 나타낼 수도 있음. y축이 범줏값 이름, x축(width)이 비교할 값
        • plt.barh(y=temp.index, width=temp.values)
    • Seaborn의 countplot() 함수를 사용하면 집계 과정 없이도 Bar Plot를 그릴 수 있음
      • 자동 집계되어 범줏값의 크기가 비교됨 
      • sns.countplot(x='Pclass', data=titanic)
  • Pie Chart
    • 범주별 값의 빈도수가 아닌 비율을 비교할 때는 Pie Chart를 사용함
    • Pie Chart 역시 집계를 먼저 해야함
      • temp = titanic['Pclass'].value_counts()
      • plt.pie(x=temp.values, labels=temp.index, autopct='%.2f%%')
      • 여러가지 옵션
        • startangle=90 : 90도 부터 시작
        • counterclock=False : 시계 방향으로
        • explode=[0.05, 0.05, 0.05] : 중심으로부터 1, 2, 3을 얼마만큼 띄울지
        • shadow=True: 그림자 추가