# [데이터 분석] EDA

## EDA란?

---

### EDA 정의

- 탐색적 데이터 분석 Exploratory Data Analysis

- 벨 연구소의 수학자 ‘존 튜키’가 개발한 데이터 분석 방법론

- 데이터를 다양한 각도에서 관찰하고 이해하는 모든 과정

- 데이터를 분석하고 결과를 내는 과정에서 지속적으로 해당 데이터에 대한 ‘**탐색과 이해**’를 기반으로 가져야  한다

### EDA의 목적

- 데이터의 이해

- 이상치 및 오류 탐지

- 패턴 발견

- 중요 변수 식별

### EDA의 필요성

**데이터 수집 → 데이터 전처리 → 순수 데이터 → EDA (탐색적 데이터 분석)**

- 데이터를 다양한 관점에서 바라보면서 얻을 수 있는 이점들이 존재

- 데이터가 표현하는 현상을 더 잘 이해, 잠재적인 문제 발견

- 데이터의 다양한 패턴 발견 → 기존 가설 수정/새로운 가설 설정

- 자료 수집을 위한 기반

- 적절한 통계 도구 제시

### EDA의 대상

- **일변량 Univariate:** EDA를 통해 파악하려는 변수 1개, 데이터 설명 및 패턴 발견 목적

- **다변량 Multi-variate**: 변수 2개 이상, 변수들간의 관계를 보는 것이 목적

### EDA의 종류

- **시각화 Graphic**: 차트, 그림 등, 데이터를 한 눈에 파악하여 대략적인 형태 파악 가능

- **비시각화 Non-Graphi**c: 주로 summary statistics, 정확한 값 파악 용이

### EDA 유형

|  | **시각화** | **비시각화** |
| --- | --- | --- |
| **일변량** | 일변량 시각화 | 일변량 비시각화 |
| **다변량** | 다변량 시각화 | 다변량 비시각화 |

- **일변량 시각화**: 데이터를 전체적으로 살펴보는 것이 주목적

- **일변량 비시각화**: 데이터의 distribution을 확인하는 것이 주목적

- **다변량 시각화**: 주어진 둘 이상의 변수 간 관계를 전체적으로 살펴보는 것이 주목적

- **다변량 비시각화**: 주어진 둘 이상의 변수 간 관계를 확인하는 것이 주목적

### EDA 방법

- **기술 통계 분석:** 평균, 중앙, 표준편차 등을 계싼하여 데이터의 중심 경향성과 분산 파악

- **시각화**: 막대그래프, 히스토그램, 박스플롯, 산점도 등 → 데이터의 분포와 패턴 시각화

- **그룹화 및 집계**: 데이터를 그룹화하고 집계하여 그룹 간 비교 및 경향성을 파악

- **상관분석**: 변수 간의 상관계수를 계산하여 변수 간의 관계를 탐색

## EDA 실행 순서

---

### 데이터 수집

- 데이터가 어떻게 수집되었는지 출처를 확인하고 데이터를 불러오기

- 데이터를 불러올 때 Python, R 등의 분석 도구들이 사용

### 전체적인 데이터 분석

- 분석의 목적과 목적에 맞는 변수가 무엇인지 확인

- 결측치가 있는지 확인하고 제거, 대체 등의 방법으로 적절히 처리

- 각 변수의 데이터 타입을 확인하고 필요에 따라 변환

- 이상치를 식별하고 처리 
- (데이터를 구성하는 각 속성값이 예측한 범위와 분포를 갖는지 
- → 아니라면 그 이유가 무엇인지 확인)

### 개별 속성 관찰

- 개별 데이터를 관찰하여 전체적인 추세와 특이사항을 관찰

- 적절한 요약 통계 지표 사용 (평균, 중앙값, 분산 등)

- 시각화를 통해 데이터의 개별 속성에 따라 통계 지표가 적절한지 결정

### 상관 관계 분석

- 개별 속성 관찰에서 찾아내지 못했던 속성들의 조합, 패턴 발견

- 상관 계수를 통핸 변수 간의 상관 관계 확인

- 상관 계수를 히트맵 등으로 시각화하여 속성 간의 관계 분석

### 가설 설정 및 추가 분석

- 데이터에서 나타나는 패턴이나 트렌드를 식별

- 분석 결과를 바탕으로 가설을 수립

### 데이터 분석 준비

- 분석 목적에 맞게 데이터를 준비

- 필요한 경우 추가 데이터를 수집

### 결과 도출 및 해석

- EDA를 통해 얻은 인사이트를 정리하고 해석

- 분석 결과를 실제 비즈니스 문제나 프로젝트 목표와 연결

## 주요 데이터 타입

---

- 주요 데이터 타입에는 **수치형 numerical과 범주형 categrical**이 존재

**수치형**

- 숫자형태로 되어 있는 데이터로 **이산형 descrete 과 연속형 continuous**이 존재

- **이산형**: 변수가 가질 수 있는 값의 개수가 유한개 (정수와 같이 명확한 값으로 표현 가능)

- **연속형**: 소수점으로 표현이 가능한 데이터 (어떤 구간 사이의 값을 가진다)

**범주형**

- 숫자로 측정할 수 없지만 여러 개의 값으로 구분 가능

- **명목형**: 순서를 매길 수 없는 데이터

- **순서형**: 순서를 가지고 있는 경우

**판다스 데이터 타입**

| **** | **Python type** | **데이터 형태** | **카카오톡 데이터 예시** |
| --- | --- | --- | --- |
| **object** | str or mixed | 텍스트(문자열) 혹은 복합구성 | - 텍스트 메시지 (text) |
| **int64** | int | 정수  (integer numbers) | - 메시지 길이(msg_len)  - 메시지 단어 수(msg_word_count) |
| **float64** | float | 실수 |  |
| **bool** | bool | 참/거짓 값(True/False) |  |
| **datetime64** | - | 날짜와 시간 | - 메시지 보낸 날짜 (date_time) |
| **timedelta[ns]** | - | 두 시각의 차이 |  |
| **category** | - | 값이 유한개로 정해져 있는 문자열값 | - 사용자 이름 (user_name),  - year, month, day, weekday |

- `object`: 문자와 숫자가 혼합된 데이터

- `int64`: 정수형 수치형 데이터

- `float64`: 실수형 수치형 데이터

- `bool`: 참, 거짓

- `datetime64`: 날짜와 시간을 나타내는 데이터

- `category`: 범주형 데이터 타입 (순서형)

## 데이터의 분류

---

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/162813_f4HErAt7Jll6H5Vfd9?q=80&s=1280x180&t=outside&f=webp)

### 수치형 데이터 vs 범주형 데이터

| **수치형 데이터 (Quantitative Data)** | **범주형 데이터 (Categorical Data)** |
| --- | --- |
| 수치를 값으로 수학적 활용이 가능 | 어떤 대상의 그룹을 나눌 때 사용 |
| ex) 나이, 키, 온도 | ex) 성별, 성적, 별점 |

### 연속형 데이터 vs 이산형 데이터

| **연속형 데이터 (Continuous data)** | **이산형 데이터 (Discrete data)** |
| --- | --- |
| 더 작은 단위로 쪼갤 수 있다. | 수를 세는 것만 가능하고 더 쪼갤 수 없다. |
| ex) 1년 강수량, 체중 | ex) 책의 페이지수, 오늘 마주친 개의 수 |

### 순서형 데이터 vs 명목형 데이터

| **순서형 데이터 (Ordinal data)** | **명목형 데이터 (Nominal data)** |
| --- | --- |
| 순서 관계가 있는 범주형 데이터 | 순서 관계가 없는 범주형 데이터 |
| ex) 영화 별점 평가, 대학교 과목 성적 | ex) 개의 품종, 성별, 혈액형 |

## 척도

---

**어떠한 대상의 특성을 단위를 사용하여 정량화한 것**

- “단위”로 봐도 무관하다.

- 척도는 범주형 자료, 연속형 자료에 따라 4가지로 구분된다.

    - 범주형 자료: 명목 척도, 순위 척도

    - 연속형 자료: 등간 척도, 비율 척도

- 척도에 따라 통계 분석이 달라진다.

- 명목 척도 / 순위 척도 → 척도에 따라 t-test, 카이제곱, 분산분석 중 어느 것을 사용할지 달라진다.

![Image](https://upload.cafenono.com/image/slashpagePost/20250201/162938_1ytJ3vwQB8Cmlp8gm8?q=80&s=1280x180&t=outside&f=webp)

### 명목 척도 (Nominal Scale)

- 이름 뿐인 척도

- ex) 성별(남/여), 국적(한국, 일본, 중국 등), 직업(회사원, 공무원, 자영업 등)

- 설문조사에 명목 척도가 많이 쓰인다.

    - 당신의 성별은? 1. 남 2. 여 → 숫자가 의미를 갖지는 않음

- 즉, 숫자로 표현될 수 있지만 수량적인 의미를 갖지 않고, 범주(카테고리)를 구분하는 용도로 쓰이는 척도이다.

### 순위 척도 (Ordinal Scale)

- 순위를 나타내는 척도

- .학교 석차 -> 내가 취득한 시험 점수를 기준으로 내 성적이 몇 번째인지 나타내는 순위척도

- 관찰대상이 지닌 속성에 따라 순위를 결정

- 순서만 매기는 척도 -> 어떤 속성에 대한 우열 판단 O, 그들 사이에 얼마나 차이가 나는지는 알 수 없다. (1, 2등 사이 점수 차이는 알 수 없다.)

### 등간 척도 (Interval Scale)

- 속성을 평가할 수 있는 균일한 간격을 두고 측정하는 척도

- ex) 섭씨 온도 (temperature), 리커트 척도(Likert scale)

- 해당 속성이 없는 절대 영점 (Abolust zero)가 없다. → 섭씨 0도는 온도가 없다는 것을 의미하는 것이 아니다. 단순히 기준점일 뿐

### 비율 척도 (Ratio Scale)

- 절대 영점이 있는 등간 척도

- 서열성, 등간성, 비율성의 세 속성을 모두 가짐

- ex) 거리, 무게, 시간 등

- 사칙 연산이 가능하고 평균을 계산하는 것도 가능하다.

> **Tip! 통계학에서 변수와 데이터 분석에서 데이터의 차이는?**

- 변수 → 측정하거나 조작하는 대상

- 데이터 → 실제 관측된 관측치들

For the site tree, see the [root Markdown](https://slashpage.com/yerim-devnote.md).
