cs

 

 

지치는건가 힘든건가 둘 다인가...

힘든데, 뭔가 행복한게 없드아... 

 

밝은 기운좀 받고싶다네..!


정규분포, 통계를 모르는 사람도 '종 모양의 정규분포표'라는걸 한번 이상은 들어본 익숙한 통계의 상징이다. 

 

역시나 이번 챕터에서도 정규분포를 크게 길게 깊게 다루지 않는데, 나는 조금만 예제랑 수식까지만이라도 집고 넘어가야겠다.

(개념 설명이 좀 없기도 하고, 바로 코드로 가는게 맘에 들진 않는당... 추가로 쓸게 없어! ㅋㅋ)

 

정규분포, 가우스 분포

정규분포는 일단 18세기 후반까지 거슬러 올라가 정말 자주 들었던 독일 수학자 카를 프리드리히 가우스의 이름을 따와 가우스 분포라고도 불린다.

 

'천문학적 측정 오차가 정규분포를 따른다는 연구를 통해서 정규분포 발전에 큰 도움을 주었다'라고 책에서도 간략하게 나오는데,

 

사실 가우스 하면 내가 먼저 떠올리는건 정십칠각형이다.

복잡해 보이지만 간단하고, 삼각함수의 아름다움이다...

뭐 대수학도 있고, 독일에서 가장?유명한 수학자니까 다른 무언가가 더 많을건데,

 

대학교 수학사 수업에서 누군가 가우스를 주제로 발표를 하던게 기억이 나고, 정십칠각각형 작도를 알려주면서그리던게 머리속에 잘 남아있다. 

 

(참고로 나는 피보나치를 주제로 열심히 발표했었다)

(옆으로 새는게 너무 자연스러웠는데,,, 수학사 진짜 공부해보시면 재밌습니다)

 

Anyway! 

 

그래서 정규분포가 뭐냐고. 


정규 분포는 평균의 연속 표준 편차가 데이터 관측치의 백분율을 추정하기 위함이고, 종 모양의 분포를 이루는 말이다. 

 

이러한 결과는 Z-검정 및 t-검정과 같은 많은 가설 검정의 기본이라고도 불린다.

 

조금더 다른 말로 하면(위키백과를 빌려 말해보자면), 정규분포는 2개의 매개 변수 평균(μ)과 표준편차(σ)에 대해서 모양이 결정이 되고, 이때의 분포를 수식으로 표현하면 아래와 같당.

흔히 동전던지기로 많이 비유를 하는데, 간단히 써보자면,

 

동전을 던저 앞, 뒤가 나올 확률은 1/2 이다. (사실 앞면이 나올 확률이 아주 미세하게 더 높다)

100번을 던지다가, 한 1000번을 던진다고 해도 우리가 알고 있는 그래프 는 비슷하게 나올 것이다. 

 

여기서! 평균이 0 이고 표준편차가 1인 정규분포 N(0,1)을 우리는 표준 정규분포라고 한다. 

https://en.wikipedia.org/wiki/Normal_distribution

앞에서 말한 것 처럼 가우시안 정규 분포 (Gaussian normal distribution) 라고도 하고, 자연 현상에서 나타나는 숫자를 확률 모형으로 나타낼 때 많이 사용이 되기도 한다.

 

예전 지식 막 끌어다가 써본다면,, 정규분포에서 가장 특징적인건, 중앙값, 최빈값, 기대값이 모두 같다. 

 

그래서! 

 

다시 정리하면, (책의 내용으로)

 

표준정규분포는 x축의 단위가 평균의 표준편차로 표현되는 정규분포를 말하고!

 

데이터를 표준정규분포와 비교하려면 데이터에서 평균을 뺀 다음 표준편차로 나누어주면 된다 (정규화, 또는 표준화 라고 부른다)

 

그리고 표준화로 변환한 값을 우리는 z-score라고 부른당. 

(맨날 종이에 z-score써있는 숫자로 구했던 기억이...)

 

그리고 데이터 분석하면서 정규분포를 보면 QQ-plot을 자주 보게 될 텐데 표본분포가 특정분포에 얼마나 가까운지를 보여주는 그림이라고 생각하면 된다.

https://en.wikipedia.org/wiki/Q%E2%80%93Q_plot

 

QQ Plot Python

from pathlib import Path
import pandas as pd
import numpy as np
from scipy import stats
from sklearn.utils import resample

import seaborn as sns
import matplotlib.pylab as plt

기본적인 임포트는 해주고, stats 내부에 있는 데이터를 통해서 QQ-Plot을 만들어보자

 

fig, ax = plt.subplots(figsize=(4, 4))

norm_sample = stats.norm.rvs(size=100) #표준정규분포로부터 추출한 100개의 표본 QQ plot
stats.probplot(norm_sample, plot=ax)

plt.tight_layout()
plt.show()

scipy.stats.probplot 메서드를 사용해서 간단히 QQ-plot을 만들수 있다.

 


 

이번 포스트를 통해서 정규분포를 제대로 알려고 들어온 사람이 혹시나 있다면, 

https://bookdown.org/mathemedicine/Stat_book/normal-distribution.html

 

기초통계 개념정리

This is a basic statistics book written by JSKIM.

bookdown.org

위 링크를 타고 가서 제대로 보기를 바란다. 

 

간단한 포스트를 통해서 나는 개념을 잡고 가기를 바란거고 정의를 설명하기에는 너무너무 심플하다 ㅎ

(사실 오늘 너무 피곤..)

 

 

+ Recent posts