본문 바로가기

Statistics

정규 분포

I. 정규 분포 (Normal Dsitribution)

정규분포는 평균값을 중심으로 대칭을 이루는 종 모양의 분포입니다. 검정 등에서는 정규분포가 전제되는 일이 많으며, 통계학을 배우는데 있어서 가장 중요한 분포 중 하나입니다. Gauss는각종 물리학 실험을 수행할 때 수반되는 계측 오차에 대한 확률 분포로서, 오늘날 가우스 분포 (Gauss distribution) 이라 불리는 연속확률분포를 제시하였습니다. 그 후로 이 분포는 물리학 뿐만 아니라 다른 학문에서도 널리 사용되었는데, 통계학의 초기 단계에서는 모든 자료의 그래프가 이 분포와 가까운 형태이어야만 옳고, 그렇지 않은 경우에는 자료 수집 과정에 잘못이있다고 생각하였습니다. 이러한 이유로 정규(normal) 이라는 이름이 붙게 되었지만, 물론 이는 잘못된 생각입니다. 저희가 앞서 배운 것 처럼 다른 분포들이 확률 모형으로 더 적합한 경우가 많습니다만, 그럼에도 여전히 정규 분포는 통계적 추론 등에 사용되는 가장 기본적인 모형입니다. 

 

정규 분포는 평균 \( \mu \), 표준편차 \( \sigma \) 에 의해 결정되는 분포로 다음과 같은 식으로 정의 됩니다.

 

\[ f(x) = \frac{1}{\sqrt{2\pi} \sigma} e^{-\frac{ (x-\mu)^2 }{ 2 \sigma^2 }} \]

 

그리고 확률변수 X가 평균 \( \mu \), 표준편차 \( \sigma \)인 정규 분포를 때를 때 아래와 같이 표현하기도 합니다.

 

\[ X \sim N\left( \mu, \sigma^2 \right) \]

 

이항분포의 시행 횟수를 늘리면 정규분포에 가까워 집니다. 예를 들어 동전 던지기 게임을 한다고 해봅시다. 앞면이 나오면 1점을 얻는다라는 규칙을정하고, 동전을 10번 던져 최종 점수를 계산하기로 합니다. 그리고 이시행을 점점 늘려보도록 하죠. 

import matplotlib.pyplot as plt
from scipy.stats import bernoulli
import numpy as np

# Set trials and parameters
trials = [10, 20, 100, 10000]
p = 0.5
sample_size = 10

# Create subplots
fig, axes = plt.subplots(2, 2, figsize=(12, 8))
axes = axes.flatten()

# Plot each trial
for idx, trial in enumerate(trials):
    scores = []
    for _ in range(trial):
        data_bern = bernoulli.rvs(size=sample_size, p=p)
        scores.append(sum(data_bern))
    
    axes[idx].hist(scores, bins=range(sample_size+2),color ='k')
    axes[idx].set_title(f'Trial = {trial}')
    axes[idx].set_xlabel('Sum of Successes')
    axes[idx].set_ylabel('Frequency')
    axes[idx].grid(True)

plt.tight_layout()
plt.savefig('bernoulli_trial')
plt.show()

 

 

시행횟수가 늘어날 수록 종 모양에 가깝게 곡선이 변하는 것을 확인할 수 있습니다. 

 

정규분포의 확률밀도함수를 이용해 확률밀도 곡선을 그려 봅시다. 

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

# Set mean and standard deviations
mu = 50
std_devs = [1, 5, 10]

# Set x-axis range
x = np.linspace(mu - 4*max(std_devs), mu + 4*max(std_devs), 1000)

# Set figure size
plt.figure(figsize=(10, 6))

# Plot normal distribution curves for each standard deviation
for std in std_devs:
    y = norm.pdf(x, mu, std)
    plt.plot(x, y, label=f'μ=50, σ={std}')

# Set title and axis labels
plt.title('Normal Distribution Curves with Mean=50 and Different Standard Deviations')
plt.xlabel('x value')
plt.ylabel('Probability Density')

# Add legend
plt.legend()

# Add grid
plt.grid(True)

# Save plot to file
plt.savefig('normal_distributions.png')

# Show plot
plt.show()

동일한 평균에 대해 표준편차를변경하며 그려봤습니다. 곡선은 평균값에 대해 좌우 대칭이고, 평균값에서 높이는 가장 큽니다. 그리고 표준편차가 작아질수록 평균 근처의 확률이 커지고, 표준편차가커질 수록 곡선은 x축에 가깝게 평평해 집니다. 여기서 그리지는 않았지만, 위 코드를 이용해 표준편차는 동일하게두고 평균만 변경하면 곡선의 형태는 동일하고 위치만 달라지는 것을 알 수 있습니다.    

 

II. 표준정규분포 

표준화란 데이터의 평균값을 0으로, 표준편차(분산)를 1로 변환하는 것을 말합니다. 그리고 이렇게 변환한 데이터를 표준변화량이라고 합니다. 표준화한 정규분포는 표준정규분포(z distribution) 이라고 합니다. 표준정규분포를 구하기 위해 우선 정규분포포의 성질에 대해 알아봅시다.

 

\[ X \sim N\left( \mu, \sigma^2 \right) \]

 

일 때, 임의의 상수 a, b 에 대해서 \(aX+b\) 가 정규 분포를 따르며 다음과 같은 조건을 만족하게 됩니다.

 

\[ aX+b \sim N\left( a\mu+b, a^{2} \sigma^{2} \right) \]

 

평균은 값을 추정하는데 큰 문제는 없을 것 같고, 분산의 성질에 대해 잠깐만 생각해 보고 넘어가도록 합시다. 앞서 확률분포의 기대값에서 아래와 같은 분산의 식을 유도한 적이 있습니다. https://datathings.tistory.com/13

 

\begin{aligned}
Var(X) &= E[(X - \mu)^2] \\[8pt]
       &= E(X^2 - 2\mu X + \mu^2) \\[8pt]
       &= E(X^2) - 2\mu E(X) + \mu^2 \\[8pt]
       &= E(X^2) - \mu^2 \\[8pt]
       &= E(X^2) - [E(X)]^2
\end{aligned}

 

이 식에  \(aX+b\) 를 적용해 봅시다. 

 

\begin{aligned}
\text{Var}(aX+b) 
&= \text{E}(a^2X^2 + 2abX + b^2) - \left( a^2 (\text{E}(X))^2 + 2ab\text{E}(X) + b^2 \right) \\[8pt]
&= a^2 \text{E}(X^2) + 2ab \text{E}(X) + b^2 - a^2 (\text{E}(X))^2 - 2ab \text{E}(X) - b^2 \\[8pt]
&= a^2 \left( \text{E}(X^2) - (\text{E}(X))^2 \right) \\[8pt]
&= a^2 \text{Var}(X)
\end{aligned}

 

따라서 표준변화량은 다음과 같이 정리 할 수 있습니다.

 

\[ \text{Z} = \frac{X-\mu}{\sigma} \sim \text{N}(0,1) \]

 

표를 통해 표준화 특성을 조금 더 알아 봅시다. 

no \( x \) \( x - \mu \) \( z \)
1 -10 -5.2 -1.05
2 -8 -3.2 -0.65
3 -7 -2.2 -0.44
4 -3 1.8 0.36
5 4 8.8 1.78
avg( \( \mu \) ) -4.8 0.0 0.00
sd( \( \sigma \) ) 4.96 4.96 1.00

 

마지막으로 예제를 하나 풀어봅시다. 어떤 시험의 성적 분포는 근사적으로 \( N(14, 2^{2} \) 라고 합니다 만약 11점 이하를 받은 사람은 재교육 과정을 거쳐야 한다고 하면, 재교육 대상인 사람이 비율은 얼마나 될까요.

 

11점 이하를 받은 사람의 비율은 다음과 같이 정리할 수 있습니다.

 

\begin{aligned}
\text{P}(X \leq 11) 
&= \text{P}\left( \frac{X-14}{2} \leq \frac{11-14}{2} \right) \\[8pt]
&= \text{P}\left( Z \leq -1.5 \right) \\[8pt]
&= 1 - \text{P}\left( Z \leq 1.5 \right) \\[8pt]
&= 0.0668
\end{aligned}

 

표준정규분포의 값을 구하는데 있어서 사용할 수있는 방법 중 하나는 정규분포표의 표를 활용하는 것입니다. 표준정규분포표는 z보다 작은 값을 가질 확률을 표현하고 있습니다. 또한 표준정규분포는 종모양의 대칭 형태이기 때문에 Z의 - 값까지 보여주지 않는 경우도 있습니다. 따라서 위의 식에서 -1.5 보다 작은 확률은 1.5 보다 큰 확률과 동일하며, 우리는표에서 1.5보다 작은 확률만 구할 수 있기 떄문에 전체 확률(=1) 에서 1.5보다 작은 확률을 뻄으로써 -1.5 보다 작은 확률을 우회적으로 구할 수 있게 됩니다.  

'Statistics' 카테고리의 다른 글

카이제곱분포  (0) 2025.04.28
표본분포  (0) 2025.04.27
포아송 분포  (0) 2025.04.24
이항 분포  (0) 2025.04.22
균일 분포  (1) 2025.04.20