[인공지능 수학 - 통계학]15강 : 표본분포

2 minute read

  • 통계적 추론
    • 표본 조사를 통해 모집단에 대한 해석을 진행
    • 전수조사는 실질적으로 불가능한 경우가 많음
  • 표본 조사는 반드시 오차가 발생
    • 적절한 표본 추출 방법 필요
    • 표본과 모집단과의 관계를 이해해야 함

  • 단순랜덤추출법(random sampling)
  • 난수표 사용
  • 랜덤넘버 생성기 사용
    • https://colab.research.google.com 구글 콜라보라토리에 들어가서
        import random
        [random.randint(1,10)for i in range(10)]
      



표본분포

표본 평균의 분포

  • 표본조사를 통해 파악하고자 하는 정보:
    • 모수(Parameter)
  • 모수의 종류:
    • 모평균, 모분산, 모비율 등
    • 모수를 추정하기 위해 표본을 선택하여 표본 평균이나 표본 분산 등 계산
  • 통계량(statistic):
    • 표본 평균이나 표본 분산과 같은 표본의 특성값

  • 50만명의 전국 고등학교 1학년 학생의 키를 조사하기 위해 1000명을 표본 조사함
    • 표본의 평균 계산
    • 표본의 평균은 표본의 선택에 따라 달라짐
    • 따라서 표본평균은 확률변수
  • 표본 평균이 가질 수 있는 값도 하나의 확률분포를 가짐
    • 그 분포가 무엇인지가 표본을 해석하는데 있어서 매우 중요함
  • 통계량의 확률분포 : 표본분포(sampling distribution)

  • 표본 평균
    • 모평균을 알아내는데 쓰이는 통계량
  • 표본평균의 분포
    • $x_1, x_2, \dots, x_n$
      • 평균 : $\mu$, 분산 : $\sigma^2 $
      • 정규모집단에서 추출된 표본의 측정값
    • 표본평균
      • $\bar {x} = {1 \above 1pt n \sum_{i=1}^n x_i}$ : 표본평균
      • $\bar {X}$~$N(\mu, {\sigma^2 \above 1pt n})$ : 표본평균은 정규분포를 따른다. N이 클수록 분산이 작아진다.
  • 평균이 0이고 분산이 1인 표준정규분포에서 다음과 같이 표본평균과 분산을 구할 수 있다.
    •   >>> import numpy as np
        >>> xbars = [np.mean(np.random.normal(size = 10))for i in range(10000)]
        >>> print("mean %f, var %f" %(np.mean(xbars), np.var(xbars)))
        mean -0.002223, var 0.100217
      
  • 평균과 분산을 직접 지정해서 다음과 같이 표본평균과 분산을 구할 수 있다. 평균 10, 분산 3, n=10
    •   >>> 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)))
        mean 9.976282, var 0.875775
      
  • 히스토그램으로 출력하기
    >>> import matplotlib as plt
    >>> h = plt.pyplot.hist(xbars, range=(5,15), bins=30)
    

    정규분포처럼 생긴 히스토그램을 볼 수 있다.



중심극한정리(central limit theorem)

  • $x_1, x_2, \dots, x_n$
    • 평균 : $\mu$, 분산 : %\sigma^2%
    • 모집단(!=정규모집단)에서 추출된 표본의 측정값
  • 표본평균
    • $\bar {x} = {1 \above 1pt n \sum_{i=1}^n x_i}$
    • n이 충분히 큰 경우(n >= 30),
      • 근사적으로 $\bar {X}$~$N(\mu, {\sigma^2 \above 1pt n})$

import numpy as np
import matplotlib as plt
n=3
xbars = [np.mean(np.random.rand(n)*10)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)

E(X) = 5, 표본의 개수 n이 커질수록, 평균쪽으로 점점 더 그래프가 몰리면서 정규분포의 형태를 띄는 것을 볼 수 있다.

import numpy as np
import matplotlib as plt
n=2
xbars = [np.mean(np.random.exponential(scale=4, 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)

$\lambda = 1/3$, $E(X) = 1/\lambda = 3$, $Var(X) = 1/\lambda^2 = 9$, 정규분포가 아닌 지수분포의 형태를 띈다. 하지만 표본의 개수 n를 늘려갈수록 정규분포에 가까운 형태를 띄게 된다.