데이터 분석(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)과 수치화(검정) 방법을 상황에 따라 선택해야 한다.
- 수치형-수치형은 연속 변수 간 관계(선형성 등)를,
범주형-수치형은 그룹 간 평균 차이를,
범주형-범주형은 그룹 간 비율 차이를 탐색한다.
'KT에이블스쿨 7기' 카테고리의 다른 글
[KT AIVLE School 7기] LangChain 기초 (0) | 2025.05.26 |
---|---|
[KT AIVLE School 7기] 1차 미니프로젝트 후기 (0) | 2025.05.26 |
[KT AIVLE School 7기] 데이터 분석 및 시각화(3) (0) | 2025.04.28 |
[KT AIVLE School 7기] 데이터 분석 및 시각화(2) (0) | 2025.04.28 |
[KT AIVLE School 7기] 데이터 분석 및 시각화(1) (0) | 2025.04.28 |