이산확률분포

2025. 3. 13. 02:51·기초 수학/확률통계
728x90

이산확률분포(Discrete Probability Distribution)

  • 확률변수 $X$가 취할 수 있는 모든 값이 유한하거나 셀 수 있는 무한한 경우, 이를 이산확률변수라고 한다. 
  • 이때 이산확률분포는 이산확률변수의 확률분포를 의미
  • 예시 : 주사위 던지기
    • 주사위를 던졌을 때 나올 수 있는 눈금(수)을 확률변수 $X$라고 하자.
    • 확률변수 $X$는 {1,2,3,4,5,6} 중 하나의 값을 가질 수 있다. 
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

def plot_discrete_distribution(x_values, probabilities, title):
    """이산확률분포를 시각화합니다."""
    plt.figure(figsize=(10, 6))
    plt.bar(x_values, probabilities, width=0.4, alpha=0.7)
    plt.xticks(x_values)
    plt.xlabel('x')
    plt.ylabel('P(X = x)')
    plt.title(title)
    plt.grid(True, alpha=0.3)
    plt.show()

# 예시: 주사위 던지기의 이산확률분포
die_values = np.array([1, 2, 3, 4, 5, 6])
die_probs = np.array([1/6, 1/6, 1/6, 1/6, 1/6, 1/6])

plot_discrete_distribution(die_values, die_probs, '주사위 던지기의 확률 분포')

 

[그림1] 이산확률분포 - 주사위 던지기 확률 분포

확률질량함수(Probability Mass Function, PMF)

  • 확률질량함수는 이산확률변수 $X$가 특정 값 $x$를 가질 확률을 나타내는 함수
  • 확률질량함수는 이산확률분포를 표현하기 위해 사용하는 확률분포함수로 이해가능
  • 예시 : 동전 2개를 동시에 던지는 시행에서 두 눈금의 합을 $X$라고 가정
    • 이때, $X$는 이산확률변수로, 확률질량함수 $f(x)$는 다음과 같이 정의 가능
    • $f(0) = P(X = 0) = \frac{1}{4}$
    • $f(1) = P(X = 1) = \frac{1}{2}$
    • $f(2) = P(X = 2) = \frac{1}{4}$
    • 확률 변수 $X$에 대한 확률질량함수라는 의미로 $f_x(x)$라고 표기하기도 한다. 

 

베르누이 시행(Bernoulli Trial)

  • 오직 두 가지 결과(성공 또는 실패)만 가능한 단일 확률 시행 
  • 예시 : 동전 던지기
    • 앞면(성공) 또는 뒷면(실패)이 나오는 시행
  • 예시 : 품질 검사 
    • 제품이 양품(성공) 또는 불량품(실패)인지 검사하는 시행

 

베르누이 확률변수

  • 베르누이 시행의 결과를 나타내는 확률 변수로, 성공(1)과 실패(0)의 두 가지 값만 가진다. 

 

베르누이 확률분포

  • 베르누이 확률변수의 분포를 베르누이 확률분포라고 한다.
  • 확률변수 $X$가 베르누이 분포를 따른다고 표현
  • $X \sim Bern(x; p)$
    • $X$는 확률변수
    • $\sim$ 기호는 "따른다"는 의미 
    • 모수(parameter)는 세미콜론(;) 기호로 구분하여 표기한다.
    • 모수로 $p$를 가지는데, 1이 나올 확률을 의

 

베르누이 분포의 확률질량함수

  • $Bern(x;p) = \begin{cases} p, & \text{if } x = 1 \\ 1 - p, & \text{if } x = 0 \end{cases}$
  • 이를 간단히 표현한다면
  • $Bern(x;p) = p^x (1-p)^{1-x}$
  • 예시 : $p$가 0.3인 베르누이 분포
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

def plot_bernoulli_distribution(p):
    """베르누이 분포를 시각화합니다."""
    x_values = np.array([0, 1])
    probabilities = np.array([1-p, p])
    
    plt.figure(figsize=(8, 6))
    plt.bar(x_values, probabilities, width=0.4, alpha=0.7)
    plt.xticks(x_values, ['실패 (0)', '성공 (1)'])
    plt.xlabel('x')
    plt.ylabel('P(X = x)')
    plt.title(f'베르누이 분포 (p = {p})')
    plt.grid(True, alpha=0.3)
    plt.ylim(0, 1)
    plt.show()
    


# 예시: 성공 확률이 0.3인 베르누이 분포
plot_bernoulli_distribution(0.3)

[그림2] 베르누이 분포 예시 p=0.3

 

 

 

이항분포

  • $N$번의 독립적인 베르누이 시행에서 성공 횟수의 확률 분포 
  • 매 시행마다 성공 확률은 $p$로 동일, 각 시행은 서로 독립적(독립시행)
  • 이항분포는 두 개의 매개변수로 특징지어진다. 
  • 시행 횟수 $N$과 성공 확률 $p$
  • 이항분포는 성공/실패 결과를 가진 반복 시행에서 성공 횟수를 모델링하는 데 사용, 여러 독립적인 베르누이 시행의 합으로 볼 수 있다. 
  • 예시 : 품질 관리 
    • 100개의 제품 중 불량품 수를 모델링한다.
    • 각 제품이 불량일 확률이 $p=0.05$ 라면, 불량품 수는 이항분포 $B(100, 0.05)$를 따른다. 
  • 이항 분포 확률 변수 $X$의 확률 질량 함수
    • $X \sim \text{Bin}(x; N, p) = \binom{N}{x} p^x (1-p)^{N-x}$
    • 단 $  \binom{N}{x} $는 $N$개에서 $x$개를 선택하는 조합의 수와 같다. 
    • $N! = N \cdot (N-1) \cdot \ldots \cdot 2 \cdot 1$
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

def plot_binomial_distribution(n, p):
    """이항분포를 시각화합니다."""
    x_values = np.arange(0, n+1)
    probabilities = stats.binom.pmf(x_values, n, p)
    
    plt.figure(figsize=(12, 6))
    plt.bar(x_values, probabilities, alpha=0.7)
    plt.xlabel('성공 횟수 (k)')
    plt.ylabel('P(X = k)')
    plt.title(f'이항분포 B({n}, {p})')
    plt.grid(True, alpha=0.3)
    plt.show()
    

# 예시: B(10, 0.3) 이항분포
plot_binomial_distribution(10, 0.3)

[그림3] 이항 분포 B(10, 0.3)

 

포아송 분포 

  • 주어진 시간 또는 공간에서 발생 횟수에 대한 확률을 계산할 때 사용
  • 단위 시간에 어떤 사건이  발생할 기댓값이  $\lambda$(람다)일 때, 그 사건이 $x$회 일어날 확률을 구할 수 있다.
  • 포아송 분포의 확률 질량 함수
    • $f(x; \lambda) = \frac{e^{-\lambda} \lambda^x}{x!}$
  • 포아송 분포의 평균을 $\lambda$로 표기
  • $e$는 자연 상수를 의미($e$ = 2.718 ...)

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

def plot_poisson_distribution(lambda_param):
    """포아송 분포를 시각화합니다."""
    # 포아송 분포는 이론적으로 무한대까지 값을 가질 수 있지만,
    # 실질적으로는 평균 근처에 대부분의 확률이 집중됨
    max_k = int(lambda_param * 3 + 10)  # 충분히 큰 범위로 설정
    x_values = np.arange(0, max_k)
    probabilities = stats.poisson.pmf(x_values, lambda_param)
    
    plt.figure(figsize=(12, 6))
    plt.bar(x_values, probabilities, alpha=0.7)
    plt.xlabel('사건 발생 횟수 (k)')
    plt.ylabel('P(X = k)')
    plt.title(f'포아송 분포 (λ = {lambda_param})')
    plt.grid(True, alpha=0.3)
    plt.xlim(-0.5, min(max_k - 1, lambda_param * 3))  # 가독성을 위해 범위 제한
    plt.show()
    
# 예시: λ = 5인 포아송 분포
plot_poisson_distribution(5)

[그림4] 포아송 분포 𝜆 = 5

세 가지 분포 비교

  • 베르누이 분포  : 단일 이벤트의 성공/실패를 모델링할 때 사용 (예 : 단일 제품의 양품/불량품)
  • 이항분포 : 고정된 시행 횟수에서 성공의 개수를 모델링할 때 사용 (예 : 30개 제품 중 불량품의 수)
  • 포아송 분포 : 시간/공간 단위당 이벤트 발생 횟수를 모델링할 때 사용 (예 : 1시간 동안 웹사이트 방문자 수)

 

AI에서의 응용

  • 나이브 베이즈 분류기 :  베르누이 나이브 베이즈는 이진 특성(0/1)을 가진 데이터를 다루는 데 사용됨 (예 : 단어의 존재 여부)
  • 생성 모델 : VAE, GAN과 같은 생성 모델에서 이산 데이터를 모델링할 때 사용
728x90
저작자표시 비영리 변경금지 (새창열림)
'기초 수학/확률통계' 카테고리의 다른 글
  • 연속확률분포
  • 확률 변수와 확률 분포
  • 확률개요
포장빵
포장빵
IT공부 및 프로그래밍
  • 포장빵
    포장빵의 IT
    포장빵
  • 전체
    오늘
    어제
    • AI 학습 노트 (113)
      • 기초 수학 (4)
        • 선형대수 (0)
        • 확률통계 (4)
        • 미적분 (0)
        • 최적화 이론 (0)
      • AI & 딥러닝 (1)
        • 이론 (0)
        • 컴퓨터 비전 (0)
        • 자연어 처리 (0)
        • 생성AI (0)
        • 강화학습 (0)
      • 데이터과학 (70)
        • R (47)
        • ADSP (21)
      • 연구 & 자료 (15)
        • 논문 (6)
        • 수료증 (3)
      • 프로그래밍 & 개발 환경 (22)
        • Python (22)
        • 개발도구 (0)
        • 알고리즘 (0)
      • 면접 자료 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      str lib
      Python Regular Expression Quick Guide
      Python 크롤링 기초
      Coursera Python Data Structures
      베르누이분포
      다차원 척보법
      yolov9
      CV
      R 원 그래프 퍼센트
      확률
      시퀀스형
      R 원 그래프
      논문
      Coursera 1
      지수분포
      stylegan2
      확률 분포
      시계열 모형
      단순선형 회귀분석
      매핑형(딕셔너리)
      k-means clustering
      통계량에 의한 자료 분석
      R 도수분포표
      자료의 종류
      상관분석
      yolov10
      python 주요 데이터 타입
      none타입
      주성분 분석(PCA)
      k-평균 군집
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    포장빵
    이산확률분포
    상단으로

    티스토리툴바