5-2. 일변량 & 다변량 EDA

💬
실습 파일
Kaggle의 Titanic Dataset
*Kaggel(캐글)
데이터 과학과 머신러닝 분야 최대의 온라인 플랫폼으로, 전 세계 사용자가 데이터 경진대회에 참가하고, 실제 데이터를 활용해 다양한 분석·예측 모델을 만들고 공유할 수 있는 커뮤니티임.
구글(Google) 산하에서 운영되며, 대회(Competition), 데이터셋, 실습 노트북, 토론 포럼 등 데이터 사이언스 학습과 실력 검증에 필요한 모든 리소스를 무료로 제공함.

Data Dictionary

Variable
Definition
Key
survival
Survival
0 = No, 1 = Yes
pclass
Ticket class
1 = 1st, 2 = 2nd, 3 = 3rd
sex
Sex
Age
Age in years
sibsp
# of siblings / spouses aboard the Titanic (sister+brother+spouse)
parch
# of parents / children aboard the Titanic (parent + chile)
ticket
Ticket number
fare
Passenger fare
cabin
Cabin number
embarked
Port of Embarkation
C = Cherbourg, Q = Queenstown, S = Southampton

5-2-1. 일변량 EDA

일변량 EDA 진행해줘.
💬
gpt
주요 해석 요약
Age: 약 30세 전후의 분포 중심, 약간 오른쪽으로 치우침(양의 왜도).
Fare: 대부분 저가 운임 구간에 몰림, 극단적인 이상치 존재.
SibSp/Parch: 대부분 0, 가족 없이 탑승한 경우가 많음.
Sex/Pclass/Embarked: 남성·3등석·Southampton 탑승이 주를 이룸.
범주형, 수치형 변수들의 기술통계량을 테이블로 정리해줘. 기술통계량에는 첨도와 왜도를 포함해줘.
💬
gpt
통계량
Age
Fare
SibSp
Parch
Sex
Pclass
Embarked
count
714
891
891
891
891
891
889
missing_count
177
0
0
0
0
0
2
unique_values
2
3
3
mean
29.70
32.20
0.52
0.38
std
14.53
49.69
1.10
0.81
min
0.42
0.00
0.00
0.00
25%
20.12
7.91
0.00
0.00
50%
28.00
14.45
0.00
0.00
75%
38.00
31.00
1.00
0.00
max
80.00
512.33
8.00
6.00
skewness (왜도)
0.39
4.79
3.69
2.75
kurtosis (첨도)
0.18
33.20
17.73
9.80
top (최빈값)
male
3
S
freq (최빈값 빈도)
577
491
644
해석 요약
수치형 변수
Age: 결측 177개, 평균 약 29.7세
Fare: 극단적 이상치 존재 (512.33), 높은 왜도·첨도
SibSp, Parch: 가족 동반 적음, 대부분 0
범주형 변수
Sex: 남성 577명(65%)
Pclass: 3등석 승객 491명(55%)
Embarked: S항(Southampton) 탑승자 644명(72%)
[참고용] 테이블(표)의 X축과 Y축을 변경하고 싶을 때, 프롬프트
기술통계표를 Transpose 해줘

5-2-2. 다변량 EDA

다변량 EDA를 진행하려고 해. 어떻게 진행하면 좋을 지 제안해줘.
💬
gpt

🔍 다변량 EDA 진행 방향 제안

다변량 EDA(Multivariate Analysis)는
변수 간 관계(상관성, 패턴, 영향력)를 탐색하는 단계입니다.
Titanic 데이터에서는 Survived를 중심으로 다른 변수와의 관계를 보는 것이 핵심입니다.

✅ (1) 주요 변수 간 관계 분석

관계 유형
분석 방법
목적
범주형 vs 범주형
pd.crosstab, sns.countplot
성별·등급별 생존률 비교
수치형 vs 이진형(Survived)
sns.boxplot, sns.violinplot, sns.histplot
운임, 나이 분포 차이 확인
수치형 vs 수치형
sns.scatterplot, sns.heatmap
운임–나이 관계, 상관성 탐색
다중 범주 조합
sns.catplot (hue, col 옵션 활용)
예: 성별별·등급별 생존률 교차 비교

✅ (2) 상관분석 (Correlation Analysis)

수치형 변수 간의 상관계수 계산
corr = df[["Age", "Fare", "SibSp", "Parch", "Survived"]].corr() sns.heatmap(corr, annot=True, cmap="coolwarm")
→ 생존률과 가장 연관된 수치형 변수 파악

✅ (3) 주요 변수별 생존률 요약표

성별, 등급, 탑승항 등에 따른 생존률 평균 계산
df.groupby("Sex")["Survived"].mean() df.groupby("Pclass")["Survived"].mean() df.groupby("Embarked")["Survived"].mean()
→ 단순 시각화 전, 데이터 요약으로 인사이트 확인

✅ (4) 다차원 시각화 (고급)

sns.pairplot 또는 sns.FacetGrid 활용
예: 성별별 나이–운임 관계를 생존 여부에 따라 시각화
sns.pairplot(df, vars=["Age", "Fare"], hue="Survived", palette="Set2")

🧩 (5) 이상치 및 분포 점검

Boxplot으로 운임, 나이의 극단값 확인
Age–Fare 등에서 생존자/사망자 간 분포 차이를 통해 모델링용 feature insight 확보

📈 3. 추천 분석 플로우 요약

1️⃣ Survived vs 범주형 변수 관계
(성별, 등급, 탑승항)별 생존률 비교
2️⃣ Survived vs 수치형 변수 관계
(나이, 운임, 가족 수)별 분포 및 평균 차이
3️⃣ 수치형 변수 간 상관분석
heatmap으로 시각화
4️⃣ 다중 변수 조합 분석
catplot, pairplot으로 교차 패턴 탐색
원하신다면 제가 위 제안 중 자동 다변량 EDA 파이프라인 코드를 만들어드릴 수 있습니다.
즉, Titanic 데이터를 넣으면 위 분석(그래프 + 요약표)이 한 번에 나오는 형태로요.
➡️ 그렇게 진행해드릴까요?
1번, 2번, 3번을 단계별로 진행하자
💬
gpt
완료! 요청하신 대로
1.
프로젝트 업로드 라이브러리 설치
2.
Matplotlib 한글 환경을 NanumBarunGothic.ttf로 설정
3.
다변량 EDA – 1, 2, 3단계를 모두 실행했습니다.

진행 내용 요약

Step 1 — 범주형 변수 vs 생존률
성별·등급·탑승항별 생존률 테이블을 제공했고, 각 항목별 막대그래프를 생성함.
관찰: 여성 ≫ 남성, 1등급 > 2등급 > 3등급, C항 > Q항 > S항.
Step 2 — 수치형 변수 vs 생존
Age, Fare, FamilySize의 생존/사망 분포 히스토그램과 Boxplot을 생성함.
관찰: 운임이 높고 가족 규모가 작을수록 생존자 쪽 분포가 우세. 나이는 유아층이 상대적으로 유리.
Step 3 — 상관분석(피어슨)
Survived, Age, Fare, SibSp, Parch, FamilySize 상관행렬 표와 히트맵을 생성함.
관찰: SurvivedFare(≈0.26) 가 가장 양의 상관. FamilySizeSibSp/Parch와 매우 높은 상관(파생변수이므로 당연).
필요하시면
"성별×등급×탑승항" 같이 교차그룹 생존률 표/그래프,
모델 준비를 위한 피처 엔지니어링 & 전처리 제안,
분석 결과를 하나의 파일로 정리한 리포트(export)
까지 바로 만들어드릴게요.

챗GPT를 활용한 타이타닉 데이터 EDA 요약

분석 목표: 생존 여부(Survived) 변수를 중심으로 다른 변수들과의 관계 탐색.
데이터 구분:
수치형 변수: 나이, 운임, 친척, 직계가족 등 산술 연산이 가능한 연속적 숫자 값.
범주형 변수: 성별, 선실 등급 등 특정 그룹으로 구분되는 값 (숫자여도 산술 연산 무의미).

다변량 EDA 분석 결과

핵심 분석: 범주형 변수와 생존율의 관계를 시각화하여 비교.
주요 발견:
성별: 여성(74.2%)이 남성(18.9%)보다 생존율이 압도적으로 높음.
객실 등급: 1등급(62.9%) > 2등급(47.3%) > 3등급(24.2%) 순으로 생존율이 높음.
탑승 항구: 셰르부르(Cherbourg)항 탑승객의 생존율이 55.4%로 가장 높음.

결론

분석 과정: 일변량 분석으로 개별 변수 특성을 파악한 후, 다변량 분석으로 변수 간 상호작용 및 생존율과의 관계를 규명.
챗GPT 활용: 코드 작성부터 결과 해석까지 전 과정을 지원하여 효과적인 데이터 탐색 및 분석 수행 가능.
Contact : azureguy@empal.com / azureguy@cau.ac.kr