데이터 분석/데이터 사이언스
데이터 사이언스 - 5. 기초 통계 및 확률 (5.2 확률 및 확률분포)
개발_노트
2025. 3. 20. 16:01
5.2 확률 및 확률분포
확률 및 확률분포는 데이터 분석과 머신러닝의 핵심 개념으로, 데이터가 어떻게 분포하는지, 특정 값이 나타날 확률이 얼마나 되는지를 설명하는 데 사용된다.
이 장에서는 확률 변수(Probability Variable), 확률 밀도 함수(Probability Density Function, PDF), 그리고 주요 확률분포(정규분포, 이항분포, 포아송 분포)를 다룬다.
5.2.1 확률과 확률 변수
✅ 확률(Probability)
- 어떤 사건(Event)이 발생할 가능성을 나타내는 값
- 0(절대 발생하지 않음) ~ 1(반드시 발생) 사이의 값을 가짐
✅ 확률 변수(Probability Variable, Random Variable)
- 확률에 의해 결정되는 변수
- 특정 값이 발생할 확률이 있음
- 이산형(Discrete)과 연속형(Continuous)으로 구분됨
① 이산형 확률 변수 (Discrete Random Variable)
- 특정한 값만 가질 수 있는 확률 변수
- 예) 주사위를 던졌을 때 나오는 숫자 {1, 2, 3, 4, 5, 6}
- 이항분포, 포아송 분포 등이 포함됨
② 연속형 확률 변수 (Continuous Random Variable)
- 특정 구간 내에서 무한한 값을 가질 수 있는 확률 변수
- 예) 사람의 키, 몸무게, 온도 등
- 정규분포, 균등분포 등이 포함됨
5.2.2 확률 밀도 함수 (Probability Density Function, PDF)
✅ 확률 밀도 함수(PDF, Probability Density Function)
- 연속 확률 변수가 특정 값 근처에서 나타날 가능성을 나타내는 함수
- X축: 데이터 값, Y축: 확률 밀도
- 면적이 1이 되도록 정규화됨
예를 들어, 정규분포의 확률 밀도 함수(PDF)는 다음과 같다:
📌 확률 밀도 함수(PDF) 시각화 예제
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
# 정규분포의 확률 밀도 함수 시각화
x = np.linspace(-4, 4, 100)
y = stats.norm.pdf(x, loc=0, scale=1) # 평균 0, 표준편차 1
plt.plot(x, y, color="blue", label="Normal Distribution PDF")
plt.xlabel("X")
plt.ylabel("Probability Density")
plt.title("Probability Density Function (PDF)")
plt.legend()
plt.show()
✅ 해석
- 곡선 아래의 면적 합이 1
- 평균을 중심으로 대칭적인 정규분포 곡선
5.2.3 주요 확률 분포
확률 분포는 확률 변수가 특정 값들을 가질 확률을 나타내는 분포이다.
이 장에서는 정규분포, 이항분포, 포아송 분포를 설명한다.
① 정규분포 (Normal Distribution, Gaussian Distribution)
✅ 정규분포란?
- 데이터가 평균을 중심으로 대칭적으로 분포하는 확률 분포
- 자연현상에서 많이 관찰됨 (예: 키, 몸무게, 시험 점수)
✅ 정규분포의 특징
- 평균을 중심으로 좌우 대칭
- 68-95-99.7 법칙 적용
- 평균 ±1표준편차 → 68%의 데이터 포함
- 평균 ±2표준편차 → 95%의 데이터 포함
- 평균 ±3표준편차 → 99.7%의 데이터 포함
📌 정규분포 시각화 예제
# 정규분포 시각화
x = np.linspace(-4, 4, 100)
y = stats.norm.pdf(x, loc=0, scale=1)
plt.plot(x, y, color="blue", label="Normal Distribution")
plt.fill_between(x, y, alpha=0.2) # 곡선 아래 영역 강조
plt.xlabel("X")
plt.ylabel("Probability Density")
plt.title("Normal Distribution")
plt.legend()
plt.show()
✅ 정규분포의 활용 예시
- 머신러닝 모델의 가정 (예: 선형 회귀)
- 신호 처리, 금융 분석, 자연과학
② 이항분포 (Binomial Distribution)
✅ 이항분포란?
- 성공/실패처럼 두 가지 결과만 존재하는 실험을 여러 번 반복했을 때의 확률 분포
- 예) 동전을 10번 던졌을 때, 앞면이 나오는 횟수 분포
✅ 이항분포 공식
📌 이항분포 시각화 예제
# 이항분포 시각화
n, p = 10, 0.5 # 시행 횟수 10, 성공 확률 0.5
x = np.arange(0, n+1)
y = stats.binom.pmf(x, n, p)
plt.bar(x, y, color="green", alpha=0.7)
plt.xlabel("Successes (k)")
plt.ylabel("Probability")
plt.title("Binomial Distribution (n=10, p=0.5)")
plt.show()
✅ 이항분포 활용 예시
- 동전 던지기 실험
- A/B 테스트 결과 분석
③ 포아송 분포 (Poisson Distribution)
✅ 포아송 분포란?
- 일정한 시간 또는 공간에서 사건이 발생하는 횟수를 나타내는 확률 분포
- 예) 1시간 동안 도착하는 고객 수, 웹사이트에 접속하는 사용자 수
✅ 포아송 분포 공식
📌 포아송 분포 시각화 예제
# 포아송 분포 시각화
λ = 5 # 평균 발생 횟수
x = np.arange(0, 15)
y = stats.poisson.pmf(x, λ)
plt.bar(x, y, color="red", alpha=0.7)
plt.xlabel("Occurrences (k)")
plt.ylabel("Probability")
plt.title("Poisson Distribution (λ=5)")
plt.show()
✅ 포아송 분포 활용 예시
- 콜센터에 걸려오는 전화 수
- 서버에 접속하는 사용자 수
결론
확률 및 확률분포는 데이터의 패턴을 이해하고 예측하는 데 필수적인 개념이다.
- 정규분포 → 평균을 중심으로 대칭적으로 분포
- 이항분포 → 성공/실패 실험의 반복적인 시행 결과
- 포아송 분포 → 일정한 시간/공간에서 사건 발생 횟수
이러한 확률분포 개념을 이해하면 데이터 분석, 통계 모델링, 머신러닝에서 더 깊이 있는 분석이 가능해진다.