Basic! 인공지능 수학 아홉 번째 시간으로 표본분포에 대해 알아보도록 합시다.
표본분포(sampling distribution)
추론을 하기 위해 가장 좋은 방법은 전수조사를 하는 것 입니다.
하지만 전수조사가 실질적으로 불가능한 경우가 대다수입니다.
그래서 적절하게 표본을 수집해 조사해야 합니다.
또한 표본과 모집단이 어떤 관계인지 이해해야 합니다.
표본 추출 방법
- 단순랜덤추출법
- 난수표 사용
- 랜덤넘버 생성기 사용 (import random)
표본평균의 분포
표본조사의 목적은 모수를 구하는 것 입니다.
모수에는 모평균, 모분산, 모비율 등이 있습니다.
모수를 추정하기 위해 표본을 선택해 표본 평균이나 표본 분산등을 구하는데
이를 통계량이라 부릅니다.
표본의 평균은 표본의 선택에 따라 달라지므로
표본평균은 확률변수라 볼 수 있습니다.
표본 평균이 가지는 확률분포를 표본분포라 부릅니다.

numpy를 활용해 다음과 같이 실험해 볼 수 있습니다.
import numpy as np
# 평균이 0이고 표준편차는 1인 모집단에서
# 랜덤숫자 10개를 추출한 sample의 평균을 1만개 생성합니다.
xbars = [np.mean(np.random.normal(size = 10)) for i in range(10000)]
# 평균과 분산 출력해서 위 슬라이드의 내용을 검증해 봅니다.
print("mean %f, var %f" %(np.mean(xbars), np.var(xbars)))
import numpy as np
import matplotlib as plt
# 평균이 10이고 분산이 3인 모집단을 설정하고 표본을 추출합니다.
xbars = [np.mean(np.random.normal(loc=10, scale=3, size = 10)) for i in range(10000)]
print("mean %f, var %f" %(np.mean(xbars), np.var(xbars)))
# 5에서 15사이를 30개의 칸으로 쪼개서 각각의 칸에 몇개가 해당하는지 보여줍니다.
h = plt.pyplot.hist(xbars, range=(5,15), bins=30)
중심극한정리
모집단이 정규분포가 아닌 경우가 있습니다.
그럴경우 중심극한정리를 사용합니다.

import numpy as np
import matplotlib as plt
n = 3
# 0에서부터 10사이의 random num 3개 추출해서 평균을 낸 값 10000개
# n을 늘릴 수록 정규분포처럼 보입니다.
xbars = [np.mean(np.random.rand(n)*10) for i in range(10000)]
print("mean %f, var %f" %(np.mean(xbars), np.var(xbars)))
# 0에서 10사이를 100개의 칸으로 쪼개서 각각의 칸에 몇개가 해당하는지 보여줍니다.
h = plt.pyplot.hist(xbars, range=(0,10), bins=100)
import numpy as np
import matplotlib as plt
n = 2
#평균이 3인 exp.분포를 모집단으로 하는 곳에서 n개의 sample을 추출합니다.
xbars = [np.mean(np.random.exponential(scale=3, size=n)) for i in range(10000)]
print("mean %f, var %f" %(np.mean(xbars), np.var(xbars)))
h = plt.pyplot.hist(xbars, range=(0,10), bins=100)
지금까지 표본평균에 대한 분포만 보았습니다.
위와 같은 방식을 활용해
표본분산과 같은 다른 통계량의 분포를 측정해볼 수도 있습니다.
댓글남기기