정규 분포
오류 제보정규 분포(normal distribution, 가우스 분포)는 확률밀도가 인 연속 확률분포다. 평균 μ 를 중심으로 좌우 대칭인 종 모양이고, 두 모수 μ·σ 만으로 모양이 완전히 정해진다.
1. 개요
| 정규 분포 Normal (Gaussian) Distribution | |
|---|---|
| 표기 | |
| 모수 | 평균 , 분산 |
| 지지 | 실수 전체 |
| 첨도 | 3 (초과첨도 0) |
| 미분 엔트로피 | |
| ±1σ / ±2σ / ±3σ | 68.27% / 95.45% / 99.73% |
다들 정규분포라고 가정한다. 실험가는 수학자가 증명했다고 믿고, 수학자는 실험가가 관측했다고 믿기 때문이다.1
정규 분포(normal distribution, 가우스 분포2)는 확률밀도가
인 연속 확률분포다. 평균 를 중심으로 좌우 대칭인 종 모양이고, 두 모수 · 만으로 모양이 완전히 정해진다. 로 바꾼 을 표준정규분포라 하고, 그 누적분포함수를 관례적으로 로 쓴다.
시뮬레이션 쪽에서 이 분포가 빠지는 곳이 거의 없다. 측정 잡음 모형, 몬테카를로 방법의 오차 막대, 브라운 운동의 증분, 가우시안 프로세스의 사전분포, 칼만 필터의 상태 추정, 중심극한정리가 보장하는 평균의 극한 분포가 전부 이것이다. 그런데 정작 “정규분포를 컴퓨터로 정확히 계산하는 법” 은 의외로 함정이 많아서, 이 문서는 정의보다 그쪽에 무게를 둔다.
2. 정의와 기본 성질
2.1. 누적분포함수와 오차 함수
는 닫힌꼴이 없고 오차 함수 로 쓴다.
두 표현은 수학적으로 같지만 수치적으로는 전혀 다르다(아래 「꼬리 계산」 절). 대칭성 도 같은 이유로 오른쪽 꼬리를 계산할 때는 가 아니라 를 써야 한다.
2.2. 구간 확률 — 68-95-99.7 규칙
배정밀도로 직접 계산한 값이다.
| 구간 | 안쪽 확률 | 바깥(양측) 확률 |
|---|---|---|
| ±1σ | 0.682689 | 0.317311 |
| ±2σ | 0.954500 | 0.045500 |
| ±3σ | 0.997300 | 2.70×10⁻³ |
| ±4σ | 0.999937 | 6.33×10⁻⁵ |
| ±5σ | 0.99999943 | 5.73×10⁻⁷ |
| ±6σ | 0.9999999980 | 1.97×10⁻⁹ |
양측 95% 구간의 반폭은 , 99% 는 다. 신뢰구간에서 “1.96” 이 튀어나오는 이유가 이것이다. 품질관리의 “식스 시그마 = 100만 개당 3.4개 불량” 은 ±6σ 의 양측 확률(약 2 ppb)이 아니라, 공정 평균이 1.5σ 흔들린다는 관례를 넣은 단측 4.5σ 꼬리 이다.3
2.3. 왜 하필 이 모양인가
정규분포가 “자연스러운” 이유는 서로 다른 세 방향에서 같은 답이 나오기 때문이다.
- 합의 극한. 유한분산을 가진 독립 변수들의 정규화된 합은 정규분포로 간다(중심극한정리). 수렴 속도와 꼬리가 가장 늦게 맞는다는 점은 그 문서에 있다.
- 최대 엔트로피. 평균과 분산만 고정했을 때 미분 엔트로피를 최대로 만드는 분포가 정규분포다. 값은 , 이면 1.4189 nat. “분산 외에는 아무것도 모른다” 를 가장 정직하게 표현한 분포라는 뜻이다.
- 재생성. 독립 정규변수의 선형결합은 다시 정규다. . 덕분에 칼만 필터의 예측·갱신이 평균과 공분산 두 개만 굴리면 닫힌다.
열방정식의 기본해가 시간에 따라 퍼지는 정규분포라는 점도 같은 뿌리다 — 브라운 운동의 위치 분포가 이고, 그 밀도가 확산 방정식을 푼다. 덤으로 정규밀도는 에르미트 다항식의 가중함수이자 푸리에 변환의 고정점(적절히 스케일하면 자기 자신으로 간다)이기도 하다.
3. 다변량 정규분포
벡터 의 정규분포는 평균 벡터 와 공분산 행렬 로 정해진다.
지수 안의 이차형식이 마할라노비스 거리의 제곱이다. 수치적으로 지켜야 할 것은 세 가지다.
- 역행렬을 만들지 마라. 로 촐레스키 분해한 뒤 를 전진대입으로 풀면 이차형식은 , 로그 행렬식은 다. 행렬식을 직접 계산하면 가 수백만 넘어가도 언더플로가 난다.
- 표본도 같은 분해로. 표준정규 벡터 를 뽑아 로 보내면 공분산이 정확히 다. 가우시안 프로세스 샘플 경로를 그릴 때 대각에 작은 지터( 정도)를 더하는 국룰은 촐레스키가 반양정치 행렬에서 터지는 것을 막기 위한 것이다.
- 조건부 분포는 슈어 보수. 벡터를 두 블록으로 나누면 한쪽을 관측했을 때 다른 쪽의 조건부 공분산이 , 즉 슈어 보수다. 가우시안 프로세스 회귀와 크리깅의 사후 분산이 전부 이 한 줄이다.
4. 꼬리 계산 — 1에서 빼지 마라
가장 흔한 버그는 오른쪽 꼬리를 1 - cdf(x) 로 구하는 것이다. 배정밀도에서 직접 재 보면 이렇다.
1 - Φ(x) (순진) | Φ(-x) 또는 erfc(x/√2)/2 | |
|---|---|---|
| 5 | 2.8665157192×10⁻⁷ | 2.866515718791×10⁻⁷ |
| 8 | 6.66×10⁻¹⁶ | 6.22×10⁻¹⁶ |
| 9 | 0 | 1.13×10⁻¹⁹ |
| 20 | 0 | 2.75×10⁻⁸⁹ |
가 1에 가까워지면 는 부동소수점 연산의 소거 오차를 그대로 먹는다. 에서 이미 유효숫자 10자리만 맞고, 에서는 7% 틀리며, 에서는 0이 나온다. 상보 함수 를 직접 계산하면 에서 배정밀도 최소값 밑으로 내려갈 때까지 상대오차가 유지된다.
더 깊은 꼬리나 로그 가능도가 필요하면 로그 공간에서 계산한다. 밀스 비(Mills ratio) 점근식
은 점근 급수라 항을 무한히 더하면 발산하지만, 가 클 때 처음 몇 항만 쓰면 매우 정확하다. 희귀 사건 확률을 다루는 중요도 표본추출이나 신뢰성 해석에서 를 직접 계산하는 루틴이 따로 있는 이유다.
역함수 도 같은 사정이다. 표준 구현인 위처라(Wichura)의 AS 241 은 를 중앙()과 꼬리로 나누어 각각 다른 유리함수 근사를 쓰고, 꼬리에서는 를 변수로 잡아 배정밀도 전역에서 약 상대정확도를 낸다.
5. 표본 생성
난수 생성기가 주는 균등난수 로 정규난수를 만드는 방법은 크게 넷이다.
- 역변환 표본추출. . 단조라서 준난수(소볼 수열 등)와 궁합이 좋고 공통 난수 기법과도 잘 맞는다. 대신 계산이 가장 비싸다.
- 박스-뮐러 변환(1958). 균등난수 두 개로 독립 정규난수 두 개를 만든다. , . 10⁶개를 뽑아 보면 평균 0.0017, 분산 0.998, 4차 중심적률 2.99 로 이론값(0, 1, 3)과 표본오차 범위에서 맞는다. 단, 이 0이 될 수 있는 생성기에서는 이 터지니 구간을 쓰도록 맞춰야 한다.
- 마르살리아 극좌표법. 단위원 안의 점을 기각표본추출로 고른 뒤 삼각함수 없이 같은 변환을 한다. 기각률은 .
- 지구라트(ziggurat)법(마르살리아·창 2000). 밀도 아래를 같은 넓이의 층 여러 개로 덮고, 대부분은 난수 하나와 비교 한 번으로 표본을 확정한다. 꼬리층만 따로 처리한다. 대량 생성에서 가장 빨라 NumPy 의
Generator.standard_normal등 여러 라이브러리가 기본값으로 쓴다.
“균등난수 12개를 더하고 6을 빼라” 는 옛날 요령은 밖의 값을 절대 만들지 못한다. 평균·분산은 맞아도 꼬리가 잘린 분포라, 희귀 사건 시뮬레이션에 쓰면 결과가 조용히 틀린다.
6. 정규성 가정이 깨질 때
정규분포는 꼬리가 로 매우 빨리 죽는다. 그래서 실제 데이터의 꼬리가 조금만 두꺼워도 극단 사건 확률을 수십 자릿수 과소평가한다. 대표적인 대안은 다음과 같다.
- 자유도가 작은 t 분포 — 표본분산으로 정규화한 평균, 이상치에 강건한 회귀.
- 로그정규 — 곱셈적으로 쌓이는 양(입자 크기, 투수성). 로그를 취하면 정규다.
- 검벨 분포·와이블 분포 — 최댓값·최솟값 자체의 분포. 구조물 설계하중과 파괴 강도.
- 코시 분포 — 평균도 분산도 없다. 중심극한정리가 성립하지 않는 대표 예다.
검사는 히스토그램보다 정규 Q-Q 그림이 낫다. 꼬리가 두꺼우면 양 끝이 대각선에서 S자로 휜다. 표본의 순서 통계량을 로 펼친 그림이 바로 Q-Q 그림이다.
7. 관련 문서
- 중심극한정리 · 신뢰구간 · 최대우도추정
- 가우시안 프로세스 · 칼만 필터 · 촐레스키 분해 · 슈어 보수
- 박스-뮐러 변환 · 역변환 표본추출 · 난수 생성기
- 에르미트 다항식 · 순서 통계량 · 브라운 운동
- 오차 함수 · 코시 분포 · 다변량 정규 분포
8. Footnotes
-
푸앵카레가 『확률 계산』에서 물리학자 리프만에게서 들은 말로 소개한 일화다. 수학자와 실험가가 서로를 근거로 삼는 순환 논증이 백 년 넘게 국룰로 굴러가고 있다. ↩
-
처음 유도한 사람은 가우스가 아니라 드무아브르(1733)다. 이항분포를 근사하다 나왔다. 가우스는 1809년 측량 오차 이론에서 최소제곱과 묶어 유명하게 만들었고, 이름은 결국 유명하게 만든 쪽이 가져갔다 — 학계의 국룰이다. ↩
-
1.5σ 이동은 모토로라가 경험적으로 넣은 관례이지 통계 정리가 아니다. 그래서 “6σ 품질” 이 실제로는 4.5σ 꼬리라는 사실을 알고 나면 약간 킹받는다. ↩
이 문서의 주요 출처
- NIST Digital Library of Mathematical Functions, Chapter 7 — Error Functions, Dawson's and Fresnel Integrals
- G. E. P. Box, M. E. Muller (1958), A note on the generation of random normal deviates, Ann. Math. Statist. 29(2), 610-611
- G. Marsaglia, W. W. Tsang (2000), The Ziggurat Method for Generating Random Variables, J. Stat. Softw. 5(8)
- M. J. Wichura (1988), Algorithm AS 241 — The percentage points of the normal distribution, Appl. Statist. 37(3), 477-484
의견을 반영할게요. 감사합니다.