분포 분석
데이터를 보다 깊이 이해하기 위해 반드시 필요한 단계 중 하나로, 분포는 데이터가 어떻게 퍼져 있는지, 어떤 패턴을 가지고 있는지 보여주는 방법으로 이를 통해 데이터의 특성과 데이터 속에 숨겨진 의미를 발견 할 수 있음.
분포란?
- 분포는 데이터 값들이 특정 범위 내에서 어떻게 흩어져 있는지에 대한 정보
- ex) 학생들의 점수가 대부분 70~90점 사이에 몰려 있다면, 이 데이터는 중앙값 근처에 밀집된 분포
분포의 주요 지표
1) 평균(Mean)
- 모든 데이터를 더한 후 데이터의 개수로 나눈 값
- 데이터를 대표하는 값으로 많이 사용
- ex) 5명의 학생 점수가 70, 80, 90, 100, 60이라면 평균은 (70+80+90+100+60)/5 = 80
2) 중앙값(Median)
- 데이터를 크기 순서로 정렬했을 때 가장 중앙에 있는 값.
- 데이터가 한쪽으로 치우친 경우에도 비교적 안정적인 지표로 활용
3) 분산(Variance)
- 데이터가 평균에서 얼마나 떨어져 있는지를 나타내는 지표
4) 표준편차(Standard Deviation)
- 분산의 제곱근으로, 데이터의 흩어짐 정도를 직관적으로 파악
- 표준편차가 작으면 데이터가 평균 근처에 몰려 있고, 크면 데이터가 더 넓게 퍼져 있음
5) 왜도(Skewness)
- 왜도는 분포가 비대칭적인 정도를 나타냄
- 왜도가 0이면 대칭, 음수이면 왼쪽으로 치우침, 양수이면 오른쪽으로 치우침을 의미
6) 첨도(Kurtosis)
- 첨도는 분포의 뾰족한 정도를 측정함
- 첨도가 클수록 분포가 뾰족하고, 작을수록 완만함
분포의 주요 종류
1) 정규분포(Normal Distribution)
- 가장 일반적인 분포 형태로, 종 모양의 곡선을 보임
- 평균을 중심으로 데이터가 대칭적으로 퍼져 있음
- 키, 몸무게, 시험 점수 등 자연 현상에서 자주 관찰됨
2) 균등분포(Uniform Distribution)
- 데이터가 특정 구간에서 고르게 분포되어 있는 경우.
- ex) 주사위를 던질 때 각 숫자가 나올 확률이 동일한 것
3) 이산분포(Discrete Distribution)
- 값이 특정한 정수로만 이루어진 경우를 말합니다.
- ex) 주사위 눈금, 동전 앞뒤 결과.
4) 기타 분포
- 포아송 분포(Poisson Distribution): 일정 시간이나 공간에서 어떤 사건이 발생할 확률을 분석할 때 사용
- 지수분포(Exponential Distribution): 특정 사건 간의 시간 간격을 분석할 때 유용
분포 분석을 하는 이유
1) 데이터의 특징 이해
- 데이터를 더 잘 이해하고, 이상치(Outlier)를 찾을 수 있음
- ex) 정규분포를 기대했지만 한쪽으로 치우친 데이터를 발견하면 데이터 수집 과정에서 문제가 있었는지 확인해야 할 수 있음
2) 적절한 분석 방법 선택
- 데이터 분포에 따라 사용할 수 있는 분석 방법이 달라짐
- 정규분포를 따르는 데이터와 그렇지 않은 데이터는 처리 방식이 다름
3) 예측 모델의 성능 향상
- 머신러닝이나 통계 모델링에서도 데이터의 분포를 이해하면 모델 성능을 개선할 수 있음
파이썬으로 구현한 분포 분석 예제
import matplotlib.pyplot as plt
import numpy as np
# 랜덤 데이터 생성
data = np.random.normal(loc=50, scale=10, size=1000) # 평균 50, 표준편차 10의 정규분포 데이터
# 히스토그램 그리기
plt.hist(data, bins=30, color='skyblue', edgecolor='black')
plt.title("Histogram of Data")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
# 기본 통계량 계산
print(f"평균: {np.mean(data):.2f}")
print(f"중앙값: {np.median(data):.2f}")
print(f"표준편차: {np.std(data):.2f}")