KT에이블스쿨 7기

[KT AIVLE School 7기] 데이터 분석 및 시각화(4)

CodeForWelfare 2025. 4. 28. 20:00

 

데이터 분석(EDA, CDA)에 이어 수치형,범주형에 따른 데이터 분석 방법에 대해 교육을 진행하였습니다!

여러가지 방법도 많고 데이터처리방법에 따라 다양한 방법을 사용할 수 있어 헷갈리는 부분들이 있습니다.

마지막에 데이터 유형에 따른 분석 방법을 정리 해놓았으니 그 정도만 아셔도 어느정도 충분하다고 생각합니다!


1. 단변량 분석 (수치형 / 범주형)

1-1. 단변량 분석이란?

단일 변수의 특성을 분석하여 데이터의 기본 분포나 패턴을 이해하는 작업이다.

  • 수치형 데이터: 히스토그램, 박스플롯
  • 범주형 데이터: 막대그래프(countplot)

1-2 .수치형 데이터 단변량 분석

sns.histplot(data=tips, x='total_bill', bins=20)
plt.title('총 지출 금액 분포')
plt.show()

 

✔️ 코드 실행 결과

  • 총지출 금액 분포 히스토그램이 출력된다.
  • 대략 10~20달러 구간에 데이터가 가장 많이 몰려 있고, 오른쪽 꼬리가 긴 형태다.
sns.boxplot(data=tips, y='total_bill')
plt.title('총 지출 금액 박스플롯')
plt.show()

 

✔️ 코드 실행 결과

 

  • 중앙값 약 17.8달러, 이상치(40달러 초과) 존재 확인.

1-3. 범주형 데이터 단변량 분석 

sns.countplot(data=tips, x='day')
plt.title('요일별 방문 빈도')
plt.show()

 

✔️ 코드 실행 결과

  • 'Saturday'가 가장 방문 빈도가 높고, 'Thursday'가 가장 낮다.

2. 이변량 분석 (두 변수 관계 분석)

2-1. 이변량 분석이란?

두 변수 간의 관계를 분석하여 패턴이나 상관관계를 탐색하는 작업이다.

  • 수치형-수치형: 산점도, 상관계수
  • 범주형-수치형: 박스플롯, 바플롯
  • 범주형-범주형: 교차표, 카이제곱 검정

2-2. 수치형-수치형 관계 분석 예시

sns.scatterplot(data=tips, x='total_bill', y='tip')
plt.title('총 지출과 팁 금액 관계')
plt.show()

 

✔️ 코드 실행 결과

  • 총 지출 금액이 높아질수록 팁도 함께 증가하는 경향이 나타난다.
tips[['total_bill', 'tip']].corr()

✔️ 코드 실행 결과

             total_bill       tip
 total_bill     1.000000  0.675734
 tip            0.675734  1.000000
  • 상관계수 약 0.68로, 두 변수 간 양의 상관관계가 존재한다.

2-3. 범주형-수치형 관계 분석 예시

sns.boxplot(data=tips, x='smoker', y='total_bill')
plt.title('흡연 여부에 따른 총 지출 금액')
plt.show()

 

✔️ 코드 실행 결과

  • 흡연자와 비흡연자의 총지출 중앙값은 비슷하지만, 비흡연자의 이상치가 더 많다.

2-4. 범주형-범주형 관계 분석 예시

pd.crosstab(tips['sex'], tips['smoker'])

 

✔️ 코드 실행 결과

smoker  No  Yes
sex            
Female  54   33
Male    97   60
  • 남성 흡연자가 여성 흡연자보다 더 많다.
from scipy.stats import chi2_contingency

contingency = pd.crosstab(tips['sex'], tips['smoker'])
chi2, p, dof, expected = chi2_contingency(contingency)

 

✔️ 코드 실행 결과

카이제곱 통계량: 0.000272485
p-값: 0.987
  • p-값이 0.987로 매우 크기 때문에, 성별과 흡연 여부는 통계적으로 독립이다.

3. 이변량 분석 (두 변수 관계 분석)

3-1. 이변량 분석이란?

두 변수 간의 관계를 분석하여 패턴이나 상관관계를 탐색하는 작업이다.

  • 수치형-수치형: 산점도(Scatter Plot), 상관계수(Correlation)
  • 범주형-수치형: 박스플롯(Boxplot), 바플롯(Barplot)
  • 범주형-범주형: 교차표(Crosstab), 카이제곱 검정(Chi-Square Test)
  • 수치형-범주형: Density Plot, Histogram

이변량 분석을 통해 변수 간 연관성을 이해하고, 이후 통계적 검정이나 예측 모델링에 활용할 수 있다.

3-2. 수치형-범주형 관계 분석

범주형 변수를 기준으로 수치형 변수의 분포를 비교하는 분석이다.

(1) Density Plot으로 비교

sns.kdeplot(data=tips, x='total_bill', hue='smoker', common_norm=False)
plt.title('흡연 여부에 따른 총 지출 금액 분포')
plt.xlabel('총 지출 금액')
plt.ylabel('밀도')
plt.show()

✔️ 코드 실행 결과

  • 비흡연자가 흡연자에 비해 총 지출 금액이 조금 더 높은 경향을 보인다.
  • 분포가 서로 약간 차이가 나는 것을 시각적으로 확인할 수 있다.

(2) Histogram으로 비교

sns.histplot(data=tips, x='total_bill', hue='smoker', element='step', stat='density', common_norm=False)
plt.title('흡연 여부에 따른 총 지출 금액 히스토그램')
plt.xlabel('총 지출 금액')
plt.ylabel('밀도')
plt.show()

 

✔️ 코드 실행 결과

  • 흡연자와 비흡연자의 총 지출 금액 분포 차이를 히스토그램으로 확인할 수 있다.
  • 비흡연자 쪽이 약간 더 오른쪽(고지출)으로 이동해 있다.

4. 가설과 가설검정 (p-value, 유의수준 설명)

4-1. 가설검정이란?

표본 데이터를 이용해 모집단에 대한 가설을 검증하는 통계적 절차다.

  • 귀무가설(H₀): 변화나 차이가 없다.
  • 대립가설(H₁): 변화나 차이가 있다.

4-2. 주요 개념 정리

귀무가설(H₀) "차이가 없다", "영향이 없다"는 주장
대립가설(H₁) "차이가 있다", "영향이 있다"는 주장
유의수준(α) 가설을 기각할 기준, 보통 0.05 사용
p-값 실제 데이터가 관측될 확률

4-3. 해석 방법

  • p-값 < α → 귀무가설 기각 (차이가 있다고 본다)
  • p-값 ≥ α → 귀무가설 채택 (차이가 없다고 본다)

4-4. 독립표본 t-test

from scipy.stats import ttest_ind

male_tips = tips[tips['sex'] == 'Male']['tip']
female_tips = tips[tips['sex'] == 'Female']['tip']

stat, p = ttest_ind(male_tips, female_tips)
print('t-검정 통계량:', stat)
print('p-값:', p)

 

✔️ 코드 실행 결과

t-검정 통계량: 2.714
p-값: 0.0074

 

✔️ 해석

  • p-값이 0.05보다 작으므로 남성과 여성 간 평균 팁 금액에는 통계적으로 유의미한 차이가 있다고 해석할 수 있다.

마무리

변수(feature)와 타겟(target)의 데이터 유형에 따라 분석 방법을 다음과 같이 구분할 수 있다.

  • 수치형 → 수치형
    • 시각화 방법: 산점도(Scatter Plot)
    • 수치 분석 방법: 상관분석(Correlation Analysis)
  • 수치형 → 범주형
    • 시각화 방법: 박스플롯(Box Plot), 히스토그램(Histogram), 커널 밀도 추정(Density Plot)
    • 수치 분석 방법: (필요 시 로지스틱 회귀 분석 등 활용 가능)
  • 범주형 → 수치형
    • 시각화 방법: 바플롯(Bar Plot)
    • 수치 분석 방법: T-검정(T-test), 분산분석(ANOVA)
  • 범주형 → 범주형
    • 시각화 방법: 바플롯(Bar Plot), 모자이크 플롯(Mosaic Plot)
    • 수치 분석 방법: 카이제곱 검정(Chi-Square Test)

요약

  • 시각화(plot)수치화(검정) 방법을 상황에 따라 선택해야 한다.
  • 수치형-수치형은 연속 변수 간 관계(선형성 등)를,
    범주형-수치형은 그룹 간 평균 차이를,
    범주형-범주형은 그룹 간 비율 차이를 탐색한다.