이번 주에는 지난주에 이어 EDA (탐색적 분석)과, CDA(확인적 분석)에 따라
단변량 분석, 이변량 분석, t-test, ANOVA에 대해 배웠습니다.
1주차 때 강사님이 가장 중요한 거라고 강조했던 CRISP-DM을 오랜만에 다시 짚어보고 수업을 시작했어요.
문제 정의 -> 데이터 이해 -> 데이터 준비 -> 모델링 -> 평가 -> 배포까지의 과정을 뜻하는데 분석의 시작은 비즈니스 문제 정의이며, 가설 수립에서 부터 출발한다고 다시 언급해 주셨습니다.
단변량 분석
먼저 단변량 분석에 대해 이야기 해보자면 지난주에 다뤘던 내용들 입니다,
숫자형 변수는 평균/ 중앙값/ 사분위 수/ 도수분포표 등 기초 통계량과 히스토그램/ 박스플롯을 활용하여 데이터의 분포를 체크합니다.
범주형 변수는 value_counts(), 비율 계산, barplot을 활용하여 분포를 파악합니다.
barplot으로 평균 나이를 비교할 수 있다.
sns.barplot(x="Survived", y="Age", data=titanic)
plt.grid()
plt.show()
이변량 분석
숫자형 변수끼리는
산점도, 상관계수, p-value를 통해 관계성을 확인할 수 있습니다.
만약, 범주와 숫자 데이터를 비교한다면 어떻게 해야할까요?
먼저 barplot을 이용하여 시각화를 진행해줍니다.
해당 과정을 통해 두 집단의 평균을 비교하고, 신뢰 구간을 해석할 수 있습니다.
범주가 3개 이상일 때도 동일하게 시각화를 진행하여 분석을 진행해나가면 됩니다.
수치화 도구 - T-test & ANOVA
T-test는 범주가 2개일 때 사용합니다. 두 집단의 평균 차이가 통계적으로 유의미한지 확인할 때 사용하는데요.
p-value<0.05일 경우 유의미하다고 이야기하고, t통계량은 |2| 이상일 때 차이가 있다고 해석합니다.
# NaN 행 제외
temp = titanic.loc[titanic['Age'].notnull()]
# 두 그룹으로 데이터 저장
died = temp.loc[temp['Survived']==0, 'Age']
survived = temp.loc[temp['Survived']==1, 'Age']
# t-test
spst.ttest_ind(died, survived) # 0.05보다 작다
이 코드를 실행 했을 때 t= 2.06, p=0.039정도였습니다.
p-value<0.05이고 , t값은 >|2|이기 때문에 생존 여부에 따라 나이에 유의미한 차이가 있지ㅣ만, t값이 2와 매우 가깝기 때문에 큰 차이는 아니지만 미세한 차이는 있을 거라고 추정할 수 있습니다.
ANOVA는 T-test와 다르게 범주가 3개 이상일 때 사용합니다. 전체 평균과 각 그룹의 평균 간의 차이를 비교하여 F값이 크고 p<0.05이면 그룹 간 차이가 존재합니다. 하지만, 어느 그룹과의 차이인지는 꼭 확인해봐야합니다.
범주가 3개이기 때문에 그룹별 데이터를 만들어주는 것이 우선입니다,
# 1) 분산 분석을 위한 데이터 만들기
# NaN 행 제외
temp = titanic.loc[titanic['Age'].notnull()]
# 그룹별 저장
P_1 = temp.loc[temp.Pclass == 1, 'Age']
P_2 = temp.loc[temp.Pclass == 2, 'Age']
P_3 = temp.loc[temp.Pclass == 3, 'Age']
다음과 같은 ANOVA를 실행하면
spst.f_oneway(P_1, P_2, P_3)
F=57.44 정도, p<0.05이기 때문에
객실 등급에 따라 나이 분포에 유의미한 차이가 있다는 것을 알 수 있었습니다.
저는 요즘 데이터 직무에 대해 생각하는 시간이 늘어났는데요
어떤 일을 해야 가장 행복하게 오래 이 일을 할 수 있을지에 대한 고민을 많이 하고 있어요
엔터와 관련된 데이터를 가지고 데이터를 분석하고 미래를 예측하는 데이터분석가/ 데이터 사이언티스트를 하면
내가 행복하게 일할 수 있지 않을까 싶기도 하고..
미래를 생각했을 때 제가 BDA학회에서 첫 발을 내디딘건 되게 잘한 일 같아요
체계적인 커리큘럼을 통해 다양한 방법을 배워가고 있으니까요
앞으로는 더 실전 문제에 적용해서 해보고 싶습니당
'BDA' 카테고리의 다른 글
| [BDA] 10주차 머신러닝 모델링 개요 (0) | 2026.01.23 |
|---|---|
| [BDA] 9주차 : 이변량 분석(수치형 vs 범주) (0) | 2026.01.15 |
| [BDA] 6주차 수치형 vs 수치형 (0) | 2025.11.23 |
| [BDA] 5주차 단변량 분석 범주형 (0) | 2025.11.06 |
| [BDA] 4주차 단변량 분석 (1) | 2025.10.13 |