Statistics

[STAT 101] 정규분포(Normal Distribution)와 t분포(Student's t-distribution)

thebuck104 2024. 8. 9. 18:26

1. 정규분포 Normal Distribution

1.1 이항분포의 근사

 

확률이 p인 사건을 N번 시행하여 사건 발생 횟수에 따른 확률들을 구하면 그것을

확률 p, 시행횟수 N인 이항분포 B(N, p)로 표현하고,

평균은 Np, 분산은 Np(1-p) 혹은 Npq 라고 한다.

 

예컨대 동전을 10번 던져 앞면이 나오는 사건의 횟수와 확률은

B(10, 1/2)의 분포를,

주사위를 15번 던져 1이 나오는 사건의 횟수와 확률은

B(15, 1/6)의 분포를 따른다.

 

이 때, 동전과 주사위를 무한히 던진다면??

아래와 같은 확률분포를 확인할 수 있게된다.

 

 

동전을 100번 던졌을 때, 앞면이 60번, 70번 나올 확률

혹은 앞면이 20번 30번 나올 확률 보다는

50번(+-alpha) 정도 나오는 확률이 제일 많은 것.

 

 

마찬가지로 주사위를 10번정도 던진다면 1이 나온 횟수는 1~2번이 제일 많겠지만,

시행횟수가 늘어남에 따라 (1/6)x60 = 10 의 갯수 정도로 나올 확률이 제일 높다.

 

시행횟수 N이 늘어남에 따라 누적확률분포 그래프의 모양은 더 뚜렷해지고,

양 측이 대칭인 종모양의 "정규분포" 형태를 띄게 된다.

 

1.2 중심극한정리

 

이런 이항분포의 정규분포와의 근사는 "찌그러진 동전"에서도 발견할 수 있다.

 

동전이 찌그러져 앞면이 나올 확률 p가 0.5가 아닌 0.4인 동전이 있다.

이 때 분산은 p(1-p) = 0.24이 되고,

앞면이 나오는 사건을 1, 뒤면이 나오는 사건을 0이라고 할 때,

10번 던진 평균들의 분포를 보면 다음과 같다.

 

 

이를 통해 우리는 다음과 같은 것들을 알 수 있다.

 

1. 시행횟수 N이 증가할 수록 그래프는 정규분포를 따른다 (특히 N=30인 시점부터).

2. 표본 p의 평균은 실제 p값인 0.4와 가까워진다

3. 표본 p의 분산은 실제 앞면이 나오는 사건의 분산을 n으로 나눈 값인 0.24/n 과 가까워진다.

 

이는 주사위를 던지는 이벤트에서도 같다.

 

 

1. n이 증가할수록 표본평균의 분포는 정규분포와 유사해진다. (특히 N=30부터)

2. 실제 평균인 3.5 ((1+2+3+4+5+6) / 6)에 가까워진다.

3. 분산은 2.92/n에 가까워진다.

 

따라서, 예시들의 이항분포들은 N이 커지면 평균이 m이고 분산이 sd^2/n인 정규분포를 따르게 된다.

 

그렇다면 연속확률분포에서는??

 

mean = 0이고 var = 1인 표준정규분포에서 n개의 숫자를 뽑아 평균을 내는 경우를 살펴보자.

 

이 역시도 n이 30만 되어도 정규분포와 모양이 비슷해지는 것을 알 수 있다.

표본의 평균은 실제 평균인 0에, 그 분산은 1/n에 가까워지고 있다.

 

 

1.3 파이썬을 활용해 정규분포 그리기

 

파이썬의 numpy 라이브러리를 통해 정규분포를 쉽게 구현할 수 있다.

import numpy as np

normal_dist = np.random.normal(mu, std, n)
# 평균, 표준편차, 데이터 개수

 

이를 matplotlib의 pyplot을 활용해 히스토그램으로 시각화 하면 다음과 같다.

import matplotlib.pyplot as plt

plt.hist(normal_dist, bins=30, density=True, alpha=0.6, color='g')

 

 

2. 스튜던트 t분포 Student's T Distribution

정규분포를 따르는 집단에서 

 

1. 샘플을 하나 뽑는 것

2. 샘플을 여러개 뽑아 하나의 표본평균을 얻는 것

은 평균적으로  mu 의 평균값이 얻어질 것으로 기대된다.

 

그러나 전자의 경우 분산이 std**2 인 반면, 후자의 경우 분산은 std**2 / n 이 된다. 즉,

 

하나의 표본 평균이 모평균에서 벗어나는 정도가, 한 샘플 자체가 모평균에서 벗어나는 정도보다 훨씬 작다는 것

 

거기에, 표분의 수 n이 늘어남에 따라 벗어나는 정도는 더욱 줄어든다.

 

즉, 우리가 모평균을 알지 못한다면,

하나의 샘플 자체를 사용하기보다

여러개의 표본들을 추출해 표본 평균을 사용하는 것

모평균을 추정하는 더 정확한 방법이 된다.

또한, 샘플 수를 컨트롤하면서 표본 평균이 모평균으로부터 벗어나는 정도를 컨트롤 할 수 있기에,

"에러를 컨트롤하면서 알지 못하는 값을 추정" 할 수 있게 해준다.

 

하지만 일반적으로 우리는 모평균을 모르듯이 모분산도 알지 못한다.

그렇기에 모분산 대신 표본 분산 Sample Variance을 활용한다면

이고, 이를 Student's t-distribution 이라고 부른다.

t 분포는 다음과 같은 모양을 하고 있다.

 

 

0을 중심으로 좌우가 같고, 평균값이 존재한다면 0일 것을 예상할 수 있다.

v는 자유도 Degree of Freedom으로, v가 커질 수록 0 근처의 분포 확률이 커지고,

0에서 떨어진 값에서의 확률은 감소한다.

 

 

2.1  파이썬을 활용해 t 분포 그려보기

import numpy as np

t_dist = np.random.standard_t(df = v, size = 1000)