[통계] 정규분포, 긴 꼬리 분포, 스튜던트 t 분포, 카이제곱 분포, 이항분포, 푸아송 분포

seonyoung·2024년 8월 2일
0

📁 정규분포(가장 대표적인 분포)

1) 정규분포란?


-출처 : 위키백과-

  • 정규분포

    • 정규분포는 종 모양의 대칭 분포로, 대부분의 데이터가 평균 주위에 몰려 있는 분포
    • 평균을 중심으로 좌우 대칭이며, 평균에서 멀어질수록 데이터의 빈도가 감소
    • 표준편차는 분포의 퍼짐 정도를 나타냄
  • 특징

    • 대부분의 데이터가 평균 주변에 몰려 있으며, 평균에서 멀어질수록 빈도가 줄어듦

2) 실제로 어떻게 사용되어질까?

  • 대부분의 상황에서 관찰되는 분포
  • 키와 몸무게
    • 대부분의 사람들의 키와 몸무게는 정규분포를 따름
    • ex) 평균 키가 170cm이고 표준편차가 10cm인 경우, 대부분의 사람들의 키는 160cm에서 180cm 사이에 위치하게 됨
  • 시험 점수
    • 큰 집단의 시험 점수는 정규분포를 따르는 경향이 있음
    • 평균 점수 주위에 많은 학생들이 위치하고, 극단적인 고득점자와 저득점자는 적음
# 정규분포 생성
normal_dist = np.random.normal(170, 10, 1000)

# 히스토그램으로 시각화
plt.hist(normal_dist, bins=30, density=True, alpha=0.6, color='g')

# 정규분포 곡선 추가
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
p = stats.norm.pdf(x, 170, 10)
plt.plot(x, p, 'k', linewidth=2)
plt.title('normal distribution histogram')
plt.show()

📁 긴 꼬리 분포

✔️ 데이터가 비대칭적으로 꼬리 형태로 분포할 때 사용!

1) 긴 꼬리 분포란?


-출처 : https://www.nngroup.com/articles/long-tail/-

<긴 꼬리 분포>

  • 긴 꼬리 분포는 대부분의 데이터가 분포의 한쪽 끝에 몰려 있고, 반대쪽으로 긴 꼬리가 이어지는 형태의 분포
  • 이는 정규분포와 달리 대칭적이지 않고 비대칭적
  • 특정한 하나의 분포를 의미하지 않으며 여러 종류의 분포(예: 파레토 분포, 지프의 법칙, 멱함수)를 포함할 수 있음

<특징>

  • 소득 분포, 웹사이트 방문자 수 등에서 관찰됨

2) 실제로 어떻게 사용되어질까?

<일부가 전체적으로 큰 영향을 미치는 경우>

  • 소득 분포
    • 일부 부유층이 전체 소득에서 큰 비중을 차지하는 소득 분포
  • 온라인 쇼핑
    • 아마존과 같은 대형 온라인 쇼핑몰에서는 소수의 인기 제품이 많은 판매를 기록하고, 많은 수의 비인기 제품이 적은 판매를 기록하는 긴 꼬리 분포를 보임
    • 이 현상을 "롱테일 현상"이라고 함
    • 잘 팔리는 상위 20%가 전체 매출의 80%를 차지
  • 도서 판매
    • 소수의 베스트셀러 도서가 전체 판매량의 대부분을 차지하고, 많은 수의 비인기 도서가 적은 판매를 기록하는 긴 꼬리 분포를 보임
# 긴 꼬리 분포 생성 (예: 소득 데이터)
long_tail = np.random.exponential(1, 1000)

# 히스토그램으로 시각화
plt.hist(long_tail, bins=30, density=True, alpha=0.6, color='b')
plt.title('long tail distribution histogram')
plt.show()

📁 스튜던트 t 분포

✔️ 표본이 작을 때 정규분포 대신 사용!

1) 스튜던트 t 분포란?


-출처 : 위키백과-

  • 자유도가 커질 수록 정규분포에 가까워짐 (여기서 자유도란 표본의 크기와 관련이 있는 값이라고 이해!)

<스튜던트 t 분포>

  • t분포는 모집단의 표준편차를 알 수 없고 표본의 크기가 작은 경우(일반적으로 30미만)에 사용되는 분포
  • 정규분포와 유사하지만, 표본의 크기가 작을수록 꼬리가 두꺼워지는 특징이 있음

<특징>

  • 표본 크기가 커지면 정규분포에 가까워짐

2) 실제로 어떻게 사용되어질까?

<데이터가 적은 경우 사용>

  • 작은 표본의 평균 비교
    • ex) 두 그룹의 평균 시험 점수를 비교할 때 표본 크기가 작다면 t검정을 사용하여 두 그룹의 평균이 유의미하게 다른지 검토할 수 있음
  • 약물 시험
    • 새로운 약물의 효과를 테스트할 때, 소규모 임상 시험에서 두 그룹 간의 차이를 분석하는 데 사용
# 스튜던트 t 분포 생성
t_dist = np.random.standard_t(df=10, size=1000)

# 히스토그램으로 시각화
plt.hist(t_dist, bins=30, density=True, alpha=0.6, color='r')

# 스튜던트 t 분포 곡선 추가
x = np.linspace(-4, 4, 100)
p = stats.t.pdf(x, df=10)
plt.plot(x, p, 'k', linewidth=2)
plt.title('student t distribution histogram')
plt.show()

📁 카이제곱분포

✔️ 독립성 검정이나 적합도 검정에 사용되는 분포!

1) 카이제곱분포란?


-출처 : 위키백과-

  • 여기서 K값은 자유도 (여기서 자유도란 표본의 크기와 관련이 있는 값이다 정도로 이해!)

<카이제곱분포>

  • 카이제곱분포는 범주형 데이터의 독립성 검정이나 적합도 검정에 사용되는 분포

<특징>

  • 자유도에 따라 모양이 달라짐
  • 상관관계나 인과관계를 판별하고자 하는 원인의 독립변수가 ‘완벽하게 서로 다른 질적 자료’일 때 활용
    • ex) 성별이나 나이에 따른 선거 후보 지지율
  • 범주형 데이터 분석에 사용

2) 실제로 어떻게 사용되어질까?

<독립성 검정이나 적합도 검정이 필요할 때>

  • 독립성 검정
    • 두 범주형 변수 간의 관계가 있는지 확인할 때 사용
    • 예를 들어, 성별과 직업 선택 간의 독립성을 검토할 수 있음
    • 혹은, 성별이 후보 지지율에 영향을 끼치는지? 검토할 수도 있음
  • 적합도 검정
    • 관측한 값들이 특정 분포에 해당하는지? 검정할 때 사용
    • ex) 주사위의 각 면이 동일한 확률로 나오는지 검토할 수 있음
    • 노란색 완두와 녹색완두가 3:1의 비율로 나와야 하는데 실험적으로 측정한 데이터가 그렇게 나오는지?
  • (독립성 검정과 적합도 검정은 이후에 자세히 배울 예정)
# 카이제곱분포 생성
chi2_dist = np.random.chisquare(df=2, size=1000)

# 히스토그램으로 시각화
plt.hist(chi2_dist, bins=30, density=True, alpha=0.6, color='m')

# 카이제곱분포 곡선 추가
x = np.linspace(0, 10, 100)
p = stats.chi2.pdf(x, df=2)
plt.plot(x, p, 'k', linewidth=2)
plt.title('카이제곱 분포 히스토그램')
plt.show()

📁 이항분포

✔️ 결과가 2개가 나오는 상황일 때 사용하는 분포!

1) 이항분포란?

  • 이항분포는 연속된 값을 가지지 않고, 특정한 정수 값만을 가질 수 있음
    → ex) 동전을 10번 던질 때 앞면이 나오는 횟수는 0, 1, 2, ..., 10과 같은 정수
    → 따라서 이항분포가 연속적으로 그려지지 않음
  • 이런 이항분포처럼 연속된 값을 가지지 않는 분포를 이산형 분포라고 지칭 하기도 함

<이항분포>

  • 성공/실패와 같은 두 가지 결과를 가지는 실험을 여러 번 반복했을 때 성공 횟수의 분포
  • 독립적인 시행이 n번 반복되고, 각 시행에서 성공과 실패 중 하나의 결과만 가능한 경우를 모델링하는 분포라고도 할 수 있음
  • 성공 확률을 p라 할 때, 성공의 횟수를 확률적으로 나타냄

<특징>

  • 실험 횟수(n)와 성공 확률(p)로 정의됨

2) 실제로 어떻게 사용되어질까?

<결과가 2개만 나오는 상황을 여러번 하는 경우>

  • 동전 던지기
    • 동전을 10번 던졌을 때, 앞면이 나오는 횟수는 이항분포를 따름
  • 품질 관리
    • 제조업체가 제품의 불량률을 모니터링할 때, 무작위로 선택된 100개의 제품 중 불량품의 수는 이항분포를 따름
# 이항분포 생성 (예: 동전 던지기 10번 중 앞면이 나오는 횟수)
binom_dist = np.random.binomial(n=10, p=0.5, size=1000)

# 히스토그램으로 시각화
plt.hist(binom_dist, bins=10, density=True, alpha=0.6, color='y')
plt.title('이항 분포 히스토그램')
plt.show()

📁 푸아송 분포

✔️ 희귀한 사건이 발생할 때 사용하는 분포!

1) 푸아송 분포란?

  • 이항 분포처럼 연속된 값을 가지지 않기 때문에 이 분포도 역시 이산형 분포에 해당
  • 평균 발생률 λ가 충분히 크다면 정규분포에 근사
  • 평균 발생률이란 주어신 시간이나 공간에서 사건이 몇번 발생했는지?
    • ex) 한 시간동안 콜센터에 전화오는 건수가 10건이면 λ는 10

<푸아송 분포>

  • 단위 시간 또는 단위 면적 당 발생하는 사건의 수를 모델링할 때 사용하는 분포
  • 푸아송 분포는 평균 발생률 λ를 가진 사건이 주어진 시간 또는 공간 내에서 몇 번 발생하는지를 나타냄

<특징>

  • 푸아송 분포는 단위 시간 또는 단위 면적당 희귀하게 발생하는 사건의 수를 모델링하는 데 적합

2) 실제로 어떻게 사용되어질까?

<특정 공간이나 특정 시간에 사건이 발생하는 경우>

  • 콜센터
    • 특정 시간 동안 콜센터에 도착하는 전화 통화의 수
  • 교통사고
    • 특정 도로 구간에서 일정 기간 동안 발생하는 교통사고의 수
  • 문자 메시지
    • 특정 시간 동안 수신되는 문자 메시지의 수
  • 웹사이트 트래픽
    • 특정 시간 동안 웹사이트에 도착하는 방문자의 수
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import poisson

# 푸아송 분포 파라미터 설정
lambda_value = 4  # 평균 발생률
x = np.arange(0, 15)  # 사건 발생 횟수 범위

# 푸아송 분포 확률 질량 함수 계산
poisson_pmf = poisson.pmf(x, lambda_value)

# 그래프 그리기
plt.figure(figsize=(10, 6))
plt.bar(x, poisson_pmf, alpha=0.6, color='b', label=f'Poisson PMF (lambda={lambda_value})')
plt.xlabel('Number of Events')
plt.ylabel('Probability')
plt.title('Poisson Distribution')
plt.legend()
plt.grid(True)
plt.show()

📌 분포 정리하기

✔️ 지금까지 배웠던 분포들 최종 정리하기!

1) 분포들간의 관계

  • 이때까지 작성한 분포는 극히 일부에 불과!
  • 결국 데이터 수가 엄청 많아지면 정규분포에 수렴 (중심극한정리)
  • 데이터 수가 많으면 묻지도 따지지도 말고 바로 정규분포로 가정!
  • 하지만, 데이터가 적을 경우 각 상황에 맞는 분포를 선택
  • 특히, long tail distribution은 데이터가 많아도 정규분포가 되지 않는 분포!

2) 분포를 어떻게 고르면 될까?

  • 데이터 수가 충분하다 → (무조건) 정규분포
  • 데이터 수가 작다 → 스튜던트 t 분포
  • 일부 데이터가 전체적으로 큰 영향을 미친다 → 롱 테일 분포(파레토 분포)
  • 범주형 데이터의 독립성 검정이나 적합도 검정 → 카이 제곱 분포
  • 결과가 두 개(성공 or 실패)만 나오는 상황 → 이항 분포
  • 특정 시간, 공간에서 발생하는 사건 → 푸아송 분포
profile
원하는 바를 이루고 싶은 사람입니다.

0개의 댓글