반응형

정규 분포(Normal Distribution) 와 표준 정규 분포(Standard Normal Distribution)의 개념 및 이 둘의 차이를 설명합니다.



2022. 4. 17 최초작성

2022. 4. 17 “표준 정규 분포” 항목의 불분명한 문장 수정. 알려주셔서 감사합니다. 



아래 링크의 원문을 바탕으로 이해한 내용을 추가하여 작성되었습니다. 

 

https://www.statology.org/normal-distribution-vs-standard-normal-distribution/ 



정규분포

 

정규 분포는 통계에서 일반적으로 많이 사용되는 확률 분포(probability distribution)입니다.

 

다음과 같은 특성을 가지고 있습니다.

 

  • 보통 좌우가 대칭적인 모양입니다.(Symmetrica)
  • 전체 형태가 종 모양에 가깝습니다.(Bell-shaped)
  • 평균(Mean)과 중앙값(Median)이 같습니다. 언급할때 중앙값보단 평균값을 얘기합니다. 정리하면 X 축을 따라 정규 분포의 중앙이 되는 위치에 평균이 위치합니다.



정규 분포의 평균은 분포의 중앙 위치를 결정하고 표준 편차는 분포가 평균을 중심으로 좌우로 얼마나 넓게 퍼져있는 지를 결정합니다.



예를 들어, 다음 그림은  3개의 정규 분포를 보여줍니다. 각각 평균(μ)과 표준편차(σ)가 다른 것을 오른쪽 위에 보이는 범례에서 볼 수 있습니다. 

 



표준 정규 분포

 

표준 정규 분포(standard normal distribution)는 평균이 0이고 표준 편차가 1인 정규 분포입니다.

 

하지만 자료를 찾다보면 표준 정규 분포라는 용어를 영어 또는 한글로 명시하는 경우보다는 평균 0, 표준편차 1인 정규분포라고 언급하는 글들이 많이 보입니다. 

 

다음은 표준 정규 분포의 그래프입니다. 평균이 0이라 중심이 0에 있으며 표준편차가 1이라서 좌우로  ±3 정도까지가 종모양의 형태인 것을 볼 수 있습니다. 인터넷에서 찾을 수 있는 표준 정규 분포의 그래프에 따라 그 범위 넘어서는 값이 일정해보이거나 점점 줄어드는 것처럼 그려집니다.   





정규 분포를 표준 정규 분포로 변환하는 방법

보통 데이터가 정규 분포라는 가정을 하는데 Normality Test을 통해 진짜 정규 분포인지 확인하는 작업이 필요합니다. 

SciPy에서 Normality Test를 할 수 있는 몇가지 함수들이 제공합니다.

 

다음 공식을 사용하여 정규 분포를 표준 정규 분포로 변환합니다. 

 

z = (x – μ) / σ

 

x : 데이터셋에 포함된 개별 데이터입니다.

μ :  데이터셋 전체에 대한 평균입니다.

σ : 데이터셋 전체에 대한 표준편차입니다.

 

주의할 점은 개별 데이터를 구성하는 특징이 2개 이상인 경우에는 각각 특징별로 평균과 표준 편차를 구하여 위 공식을 적용해야 합니다. 



예를 들어 Numpy를 사용하여 정규 분포를 표준 정규 분포로 변경하는 파이썬 코드입니다. 

이 작업을 표준화(standardization) 한다고도 합니다. 구한 결과를 z-score라고도 부릅니다. 

 

import numpy as np
import pandas as pd


data = np.array([3, 4, 5, 6, 7, 8, 8, 8, 8, 8, 9, 9, 7, 6, 6, 5, 4, 4, 3, 2])

mean = data.mean()
std = data.std()

data_z = (data - mean) / std

pd.set_option('display.max_columns', None)
print('mean, std', mean, std)


df = pd.DataFrame([data,data_z])
print(df)



실행 결과입니다. 첫번째 열(0)이 원래 데이터이며 두번째 열(1)이 표준화 결과입니다. 

표준화 결과 평균 0, 표준편차 1이 되도록 스케일을 조정하기만 하기 때문에 범위의 최대값과 최소값이 없습니다.

반면 정규화(normalization)는 범위가 0 ~ 1 사이가 되도록 스케일을 조정해줍니다.

 



표준화를 통해 언은 값은 각 데이터값이 평균에서 얼마나 만큼의 표준 편차만큼 떨어져 있는지 알려줍니다. 

예를 들어,  첫 번째 데이터 값 3에 대해 표준화 한 결과가 -1.430194라는 것은  이 데이터값이 평균으로 부터 왼쪽으로(음수) 표준편차의 약 1.4배만큼에 위치한다는 의미입니다. 

 



파이썬 코드에 코드를 추가하여 표준화 결과에 대한 평균과 표준편차를 구해보면 각각 0과 1에 가까운 값이 출력되는 것을 확인할 수 있습니다. 



표준 정규 분포의 활용

표준 정규 분포는 다음과 같은 특성을 가지고 있습니다.



데이터의 약 68%가 평균 - 표준편차 ~ 평균 + 표준편차  범위 내에 속합니다. ( 표준화 적용 후 값의 범위는 그래프처럼 -1 ~ 1 사이 )

데이터의 약 95%가 평균 - 2 x 표준편차 ~ 평균 + 2 x 표준편차 범위 내에 속합니다.  ( 표준화 적용 후 값의 범위는 그래프처럼 -2 ~ 2 사이 )

데이터의 약 99.7%가 평균 - 3 x 표준편차 ~ 평균 + 3 x 표준편차 범위 내에 속합니다.  ( 표준화 적용 후 값의 범위는 그래프처럼 -3 ~ 3 사이 )





이를 경험적 규칙(Empirical Rule)이라고 하며 데이터 세트의 값 분포를 이해하는 데 사용됩니다.



예를 들어, 정원의 식물 높이가 평균이 47.4인치이고 표준 편차가 2.4인치인 정규 분포를 따른다고 가정합니다.

경험적 법칙에 따르면 키가 54.6인치 미만인 식물은 몇 퍼센트입니까?

 

경험적 규칙에 따르면 정규 분포를 보이는 주어진 데이터 세트에 대해 데이터 값의 99.7%가 평균 ± (3 × 표준 편차) 내에 속합니다. 즉 이 값의 절반인 49.85%가 평균 + 표준편차 x 3과 평균 사이에 있다는 의미입니다.

 

이 예에서 54.6 인치는 평균 + 표준편차 x 3 = 47.4 + 2.4 x 3 = 54.6 내에 있습니다.  정규 분포가 평균을 중심으로 대칭이므로 전체 데이터의 절반인 50%는 평균 아래에 있다는 것을 알 수 있습니다. 즉, 50% + 49.85% = 99.85%의 값이 54.6 아래에 있습니다.

 

따라서 정원의 식물의 99.85%는 키가 54.6인치 미만입니다.











반응형

해보고 확인한 것을 문서화하여 기록합니다.


부족함이 있지만 도움이 되었으면 합니다.
잘못된 부분이나 개선점을 알려주시면 감사하겠습니다.



포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
문제가 생기면 포스트와 바뀐 환경이 있나 먼저 확인해보세요.

질문을 남겨주면 가능한 빨리 답변드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">