중심 극한 정리(Central Limit Theorem, CLT)

중심 극한 정리가 뭐지?

확률론과 통계학에서, 중심 극한 정리(中心 極限 定理, 영어: central limit theorem, 약자 CLT)는 동일한 확률분포를 가진 독립 확률 변수 n개의 평균의 분포는 n이 적당히 크다면 정규분포에 가까워진다는 정리이다.
- 위키백과

중심 극한 정리란 어떤 모집단 하나로부터 표본 집단을 여러 개 가져온 후 이들의 평균을 구해놓고서 분포를 보니 가져온 갯수가 많으면 많을수록 정규 분포와 비슷해지더라, 하는 내용이다.

중심 극한 정리는 모집단이 어떻게 생겼는지에 상관 없이 적용된다.
즉, 표본의 분포가 원래 무엇이었는지에 상관 없이 표본 평균이 정규 분포를 따르므로 이를 통해 신뢰 구간을 만들거나 T-Test, ANOVA 등의 시행이 가능하다.

표본을 한 번 가져올 때는 보통 30개 이상을 가져온다.


중심 극한 정리는 어떻게 하는거지?

모집단으로부터 가져올 표본 집단의 갯수와 한 집단에 들어갈 표본의 갯수를 정한다. 그리고 각 표본 집단의 평균값을 구한 후 이들의 분포가 어떻게 생겼는지 본다.

<예시 - 중심 극한 정리 구현>

import pandas as pd  

def  clt(data, num):
    sample_means = []
    for x in  range(0, num):
        sample = np.random.choice(data, 30) # 표본 갯수 30개씩 가져오기
        sample_means.append(sample.mean()) # 표본 집단의 평균값 저장

    pd.DataFrame(sample_means).hist(color = '#4000c7');

<예시 - 이항분포>

import numpy as np
import matplotlib.pyplot as plt  

n, p = 1, 0.5
bino = np.random.binomial(n, p, 100)  

plt.hist(bino)
plt.show()

clt(bino, 100) # 표본 집단을 100개 가져온 경우
clt(bino, 1000) # 표본 집단을 1000개 가져온 경우


<예시 - 지수 분포>

expo = np.random.exponential(1, 1000)

plt.hist(expo)
plt.show()

clt(expo, 100)
clt(expo, 1000)


<예시 - 포아송 분포>

poi = np.random.poisson(5, 1000)  

plt.hist(poi)
plt.show()

clt(poi, 100)
clt(poi, 1000)


위 예시들을 통해 알 수 있듯이, 모집단이 어떻게 생겼든 표본 평균의 분포는 정규 분포와 비슷해진다.
또한 표본 평균의 갯수가 많을 수록 정규 분포에 보다 가까워진다.

<참고 자료>
중심 극한 정리 - 위키백과
[개념 통계 17] 중심극한 정리는 무엇이고 왜 중요한가?
중심극한정리에 대한 오해, 많으면 무조건 정규분포 OK???
[파이썬 데이터 사이언스] 중심극한정리(CLT, central limit theorem) 시뮬레이션

[확률과 통계] 파이썬으로 이항 분포 그리기
[확률과 통계] 파이썬으로 지수 분포 그리기
[Python NumPy] 무작위 표본 추출, 난수 만들기 (random sampling, random number generation)
numpy.random.choice
numpy.random.binomial
numpy.random.exponential
numpy.random.poisson

 

'Statistics > Confidence Interval' 카테고리의 다른 글

[Stats] 신뢰 구간(Confidence Interval)  (0) 2021.10.17

+ Recent posts