143강이 표본평균의 분포를 주었습니다. 그런데 쓸 수 없습니다.
를 모르기 때문입니다. 를 모르니까 추정하는 것인데, 같은 자료에서 만 알고 있을 리가 없습니다. 표준오차를 계산할 수 없으면 신뢰구간도 검정도 만들 수 없습니다.
그래서 도 표본에서 추정합니다. 그러면 새 질문이 셋 생깁니다.
| 질문 | 이 강의의 답 |
|---|---|
| 왜 이 아니라 로 나누는가 | 나머지 하나를 이 이미 썼습니다 |
| 자체의 분포는 무엇인가 | 카이제곱을 로 나눈 것입니다 |
| 과 은 서로 독립인가 | 정규 표본에서만 독립입니다 |
세 번째가 가장 놀랍고 가장 쓸모 있습니다. 두 추정량이 같은 자료에서 나왔는데도 독립이며, 그 독립성이 145강의 분포를 가능하게 합니다.
문제. 정규분포 에서 개를 뽑습니다.
(1) 제곱합을 으로 나눈 값과 로 나눈 값을 각각 재세요.
(2) 어느 쪽이 참값 에 맞는지 판정하세요.
(3) 틀린 쪽의 편향이 얼마인지 식으로 쓰세요.
생각의 실마리. 분산의 정의는 인데 우리는 를 모릅니다. 자리에 을 넣는 순간 무엇인가 달라집니다.
풀이. (1)(2) 검산 결과입니다.
| 으로 나눔 | 로 나눔 | 의 편향 | 이론 편향 | |
|---|---|---|---|---|
로 나눈 쪽만 에 맞습니다. 으로 나눈 쪽은 어느 에서도 작으며, 에서는 참값의 절반밖에 안 됩니다.
(3) **편향이 정확히 **입니다. 마지막 두 열이 표본오차 안에서 일치합니다.
이 문제에서 배우는 것: 불편추정량과 자유도.
표본분산. 이며 입니다.
증명이 항등식 하나입니다.
오른쪽 두 항이 모두 음이 아닙니다. 그러므로 을 중심으로 잰 제곱합은 참 평균을 중심으로 잰 것보다 반드시 작습니다.
기댓값을 씌우면 왼쪽이 이고 오른쪽 둘째 항이 이므로 다음이 나옵니다.
이 자유도를 하나 씁니다. 편차 의 합이 언제나 이므로, 개를 알면 나머지 하나가 정해집니다.
개의 편차 중 자유로운 것이 개이며, 이것이 로 나누는 이유입니다.
위 항등식은 82강의 피타고라스 정리입니다. 을 방향 성분과 그 직교 성분으로 쪼갠 것이며, 문제 4에서 이 기하를 그대로 씁니다.
불편성이 언제나 좋은 것은 아닙니다. 는 의 제곱근인데 입니다. 젠센 부등식 때문이며, 불편추정량의 함수는 불편이 아닙니다.
바로 확인 1.
확인 1-1. 표본분산의 정의를 쓰세요.
답. 입니다.
확인 1-2. 으로 나눌 때의 편향을 쓰세요.
답. 입니다.
확인 1-3. 자유도가 인 이유를 쓰세요.
답. 편차의 합이 이라 개만 자유롭기 때문입니다.
문제. 정규 표본에서 의 분포를 조사합니다.
(1) 카이제곱분포와의 최대 거리를 재세요.
(2) 자유도가 몇인지 판정하세요.
(3) 평균과 분산으로 확인하세요.
생각의 실마리. 131강에서 표준정규의 제곱합이 카이제곱이었습니다. 은 표준정규가 아니지만 그 제곱합이 여전히 카이제곱인지가 문제입니다.
풀이. (1)(2)(3) 검산 결과입니다.
| 최대 거리 | 평균 수치 | 이론 | 분산 수치 | 이론 | |
|---|---|---|---|---|---|
자유도가 이 아니라 입니다. 에서 평균이 이며 이 아닙니다.
이 문제에서 배우는 것: 표본분산의 정확한 분포.
표본분산의 분포. 가 독립인 이면
근사가 아니라 정확한 등호입니다. 143강의 중심극한정리가 큰 에서만 성립했던 것과 달리, 이 결과는 에서도 정확합니다.
| 양 | 분포 | 조건 |
|---|---|---|
| \bar{X}_ | 정규 표본이면 정확 | |
| (n-1)S^{2}/\sigma^ | \chi^{2}_ | 정규 표본이면 정확 |
| 과 S^ | 서로 독립 | 정규 표본이면 정확 |
세 줄 모두 "정규 표본이면"이 붙습니다. 이 세 줄이 145강 전체의 재료이며, 정규성이 깨지면 셋 다 근사로 물러납니다.
표의 마지막 두 열에서 의 분산이 바로 나옵니다.
은 보다 훨씬 불안정합니다. 에서 의 표준오차가 인데 의 상대오차는 약 입니다.
바로 확인 2.
확인 2-1. 의 분포를 쓰세요.
답. 자유도 인 카이제곱분포입니다.
확인 2-2. 이것이 근사인지 정확한지 쓰세요.
답. 정규 표본이면 모든 에서 정확합니다.
확인 2-3. 의 분산을 쓰세요.
답. 입니다.
문제. 같은 자료에서 나온 두 통계량의 관계를 조사합니다.
(1) 정규와 지수분포에서 과 의 상관계수를 재세요.
(2) 상관이 인 것으로 독립이 확인되는지 판정하세요.
(3) 조건부로도 확인하세요.
생각의 실마리. 138강 문제 3에서 무상관이 독립이 아니라고 했습니다. 그런데 140강 문제 3에서 정규분포는 예외였습니다.
풀이. (1) 검산 결과입니다.
| 정규 상관계수 | 지수 상관계수 | |
|---|---|---|
정규에서만 입니다. 지수분포에서는 을 키워도 줄지 않고 로 갑니다.
왜도 이 상관을 만듭니다. 지수분포는 오른쪽으로 치우쳐 있어 큰 값이 나오면 평균도 분산도 함께 커집니다.
(2)(3) 무상관은 독립의 필요조건일 뿐이므로 조건부로 확인합니다. 입니다.
| 분포 | 하위 의 평균 S^ | 상위 의 평균 S^ | 비 |
|---|---|---|---|
| 정규 | |||
| 지수 |
**정규는 비가 **로 조건을 걸어도 의 분포가 그대로입니다. 지수는 배로 완전히 다릅니다.
이 문제에서 배우는 것: 독립성은 정규의 특권입니다.
독립성 정리. 가 독립인 정규 표본이면 과 은 서로 독립입니다. 그리고 이 성질은 정규분포만 갖습니다.
뒷문장이 강한 주장입니다. 어떤 분포에서 표본평균과 표본분산이 독립이면 그 분포는 정규분포일 수밖에 없으며, 이것을 지어 정리라 부릅니다.
| 성질 | 정규 | 그 밖 |
|---|---|---|
| 의 분포 | 정확히 정규 | 근사적으로 정규 |
| 의 분포 | 정확히 카이제곱 | 다릅니다 |
| 둘의 독립 | 성립 | 성립하지 않습니다 |
| 상관의 크기 |
왜 이것이 중요한가. 145강의 통계량은 분자에 , 분모에 를 놓습니다. 분자와 분모가 독립이어야 그 비의 분포를 계산할 수 있습니다.
독립이 아니면 비의 분포는 훨씬 복잡해집니다. 지수분포 자료에 검정을 쓰면 분모가 분자와 함께 움직이므로 유의수준이 틀어지며, 그 방향이 표본 크기를 키워도 사라지지 않습니다.
바로 확인 3.
확인 3-1. 정규 표본에서 두 통계량의 관계를 쓰세요.
답. 서로 독립입니다.
확인 3-2. 이 성질을 갖는 분포를 쓰세요.
답. 정규분포뿐입니다.
확인 3-3. 독립성이 왜 필요한지 쓰세요.
답. 통계량의 분자와 분모가 독립이어야 분포를 얻기 때문입니다.
문제. 직교행렬 의 첫 행을 으로 잡고 를 만듭니다.
(1) 이 무엇인지 확인하세요.
(2) 부터 까지의 제곱합이 무엇인지 확인하세요.
(3) 성분들이 서로 독립인지 확인하세요.
생각의 실마리. 139강 문제 2에서 선형변환의 야코비가 였습니다. 직교행렬이면 이라 밀도가 그대로이며, 표준정규 벡터는 회전에 대해 변하지 않습니다.
풀이. 에서 헬머트 변환을 씁니다.
| 확인 항목 | 결과 |
|---|---|
| 와 단위행렬의 최대 차이 | 2.22\times10^ |
| 과 의 최대 차이 | 1.07\times10^ |
| 과 의 최대 차이 | 4.26\times10^ |
| 성분들의 상관행렬과 단위행렬의 최대 차이 | |
| 부터 까지의 평균과 분산 | 와 |
**(1) 이고 (2) 나머지 제곱합이 정확히 **입니다. 기계 정밀도까지 맞습니다.
(3) 상관행렬이 단위행렬이며, 정규 벡터에서 무상관은 독립이므로 성분들은 서로 독립입니다.
이 문제에서 배우는 것: 자유도는 차원입니다.
직교분해. 을 이 만드는 차원과 그 직교여공간 차원으로 쪼갭니다.
80강의 정사영이 그대로 쓰였습니다. 은 를 위로 정사영한 것이고, 나머지가 잔차입니다.
| 조각 | 차원 | 통계량 | 분포 |
|---|---|---|---|
| 방향 | \bar | ||
| 직교여공간 | (n-1)S^ | \sigma^{2}\chi^{2}_ |
두 조각이 직교하므로 독립이며, 문제 3의 결과가 여기서 기하로 설명됩니다.
자유도의 정의. 잔차가 살고 있는 부분공간의 차원입니다.
이 정의가 회귀분석까지 그대로 갑니다. 설명변수가 개인 선형회귀에서 잔차의 자유도가 인 것은, 계수 개와 절편 하나가 각각 차원을 하나씩 가져가기 때문입니다. 153강 선형회귀의 통계적 해석이 이 계산을 씁니다.
정규성이 어디에 쓰였는지 분명합니다. 회전해도 분포가 변하지 않는 것은 표준정규 벡터의 성질이며, 밀도가 에만 의존하기 때문입니다. 140강 문제 5의 등고선이 구인 경우입니다.
바로 확인 4.
확인 4-1. 이 무엇인지 쓰세요.
답. 입니다.
확인 4-2. 자유도의 기하적 정의를 쓰세요.
답. 잔차가 사는 부분공간의 차원입니다.
확인 4-3. 정규성이 쓰이는 자리를 쓰세요.
답. 회전해도 분포가 변하지 않는 성질입니다.
문제. 에서 세 분포의 을 조사합니다.
(1) 의 분산을 재세요.
(2) 정규를 가정한 이론값과 견주세요.
(3) 수치가 이론과 어긋나는 경우를 해석하세요.
생각의 실마리. 문제 2의 은 정규를 가정한 값입니다. 일반적으로는 차 적률이 들어갑니다.
풀이. (1)(2) 검산 결과입니다.
| 분포 | 초과첨도 | \sigma^ | 분산 수치 | 정확한 이론 | 정규 가정 이론 | 과소평가 배수 |
|---|---|---|---|---|---|---|
| 정규 | ||||||
| 지수 | ||||||
정규를 가정하면 의 분산을 배 과소평가합니다. 초과첨도가 인 두 분포에서 배수가 정확히 같습니다.
(3) 에서 수치 가 정확한 이론 보다 작습니다. 이것이 우연이 아닙니다.
의 분산을 표본으로 재려면 의 차 적률, 즉 원자료의 차 적률이 필요합니다. 는 차 적률까지만 존재합니다. 그러므로 표본분산의 표본분산은 수렴하지 않으며, 유한한 모의실험은 언제나 낮게 나옵니다.
이 문제에서 배우는 것: 정규 가정의 대가.
일반적인 의 분산. 초과첨도를 라 하면
이면 정규의 결과로 돌아갑니다. 그리고 가 크면 두 번째 항이 지배합니다.
| \gamma_ | 예 | 의 과소평가 배수 |
|---|---|---|
| 정규 | ||
| 균등 | ||
| 지수, | ||
| , 코시 | 계산 불가 |
넷째 줄이 경고입니다. 차 적률이 없으면 자체가 무한이며, 의 오차 막대를 그릴 수 없습니다.
평균보다 분산이 훨씬 예민합니다. 는 차 적률만 있으면 잘 작동하지만, 은 차 적률을 요구합니다.
실무의 순서가 여기서 나옵니다. 꼬리가 두꺼운 자료에서는 평균의 신뢰구간보다 분산이나 표준편차의 신뢰구간이 먼저 무너집니다. 분산 추정에 정규 이론을 쓰기 전에 첨도를 먼저 봐야 합니다.
해결책은 151강의 부트스트랩입니다. 이론적 분포를 쓰지 않고 재표본으로 의 변동을 직접 재면 를 몰라도 됩니다.
바로 확인 5.
확인 5-1. 일반적인 을 쓰세요.
답. 입니다.
확인 5-2. 초과첨도 에서 의 과소평가 배수를 쓰세요.
답. 배입니다.
확인 5-3. 이 요구하는 적률의 차수를 쓰세요.
답. 차 적률입니다.
| 개념 | 식 |
|---|---|
| 표본평균 | \bar{X}_{n}=\frac1n\sum X_ |
| 표본분산 | S^{2}=\frac{1}{n-1}\sum(X_{i}-\bar{X}_{n})^ |
| 불편성 | \mathbb{E}[S^{2}]=\sigma^ |
| 으로 나눈 편향 | |
| 분해 항등식 | \sum(X_{i}-\mu)^{2}=\sum(X_{i}-\bar{X})^{2}+n(\bar{X}-\mu)^ |
| 표본평균의 분포 | |
| 표본분산의 분포 | (n-1)S^{2}/\sigma^{2}\sim\chi^{2}_ |
| 독립성 | 정규 표본에서 \bar{X}\perp S^ |
| 정규에서의 분산 | |
| 일반적인 분산 |
| 조각 | 차원 | 통계량 |
|---|---|---|
| 방향 | \bar | |
| 직교여공간 | (n-1)S^ | |
| 회귀 잔차 | 잔차제곱합 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 으로 나눕니다 | 편향이 입니다 |
| 자유도를 이라 봅니다 | 가 하나를 씁니다 |
| 가 불편이라 봅니다 | 이 불편이고 는 아닙니다 |
| 어떤 분포에서나 독립이라 봅니다 | 정규에서만 성립합니다 |
| 정규 이론으로 분산의 오차를 씁니다 | 첨도에 따라 몇 배씩 틀립니다 |
| 이 언제나 잘 작동한다고 봅니다 | 차 적률이 없으면 무너집니다 |
문제 6. 표본분산의 정의와 불편성을 쓰세요.
답. 이며 입니다.
문제 7. 으로 나눌 때의 편향을 쓰세요.
답. 입니다.
문제 8. 불편성 증명에 쓰는 항등식을 쓰세요.
답. 입니다.
문제 9. 자유도가 인 이유를 두 가지로 쓰세요.
답. 편차의 합이 이라는 것과 잔차가 차원 부분공간에 있다는 것입니다.
문제 10. 의 분포와 조건을 쓰세요.
답. 이며 정규 표본이면 모든 에서 정확합니다.
문제 11. 정규 표본에서 의 분산을 쓰세요.
답. 입니다.
문제 12. 와 의 독립성이 성립하는 분포를 쓰세요.
답. 정규분포뿐입니다.
문제 13. 지수분포에서 두 통계량의 상관계수 극한을 쓰세요.
답. 입니다.
문제 14. 독립성이 필요한 이유를 쓰세요.
답. 통계량의 분자와 분모가 독립이어야 분포를 계산할 수 있습니다.
문제 15. 헬머트 변환에서 과 나머지 제곱합을 쓰세요.
답. 와 입니다.
문제 16. 자유도의 기하적 정의를 쓰세요.
답. 잔차가 사는 부분공간의 차원입니다.
문제 17. 일반적인 을 쓰세요.
답. 입니다.
문제 18. 이 요구하는 적률과 그것이 없을 때를 쓰세요.
답. 차 적률이며 없으면 이 무한이라 오차 막대를 그릴 수 없습니다.
심화 1. 코크런 정리로 자유도를 일반화하세요.
문제 4의 분해가 특수한 경우입니다.
코크런 정리. 이고 로 쪼갤 때 가 각각 계수 인 이차형식이고 이면, 들은 서로 독립이고 입니다.
계수의 합이 전체 차원과 같으면 자동으로 독립이라는 것이 요점입니다. 87강 이차형식과 88강 계수 정리가 여기서 통계의 결론을 냅니다.
| 분해 | 조각 | 자유도 |
|---|---|---|
| 문제 4 | 평균, 잔차 | , |
| 일원배치 분산분석 | 전체평균, 집단 간, 집단 내 | , , |
| 선형회귀 | 절편, 회귀, 잔차 | , , |
| 이원배치 | 주효과 둘, 교호작용, 오차 | 각각 계수만큼 |
둘째 줄이 분산분석 전체입니다. 집단 간 제곱합과 집단 내 제곱합이 독립인 카이제곱이므로 그 비가 분포가 되며, 145강에서 분포를 정의하는 이유가 여기 있습니다.
셋째 줄이 153강입니다. 회귀에서 결정계수와 통계량이 모두 이 분해에서 나옵니다.
심화 2. 표본분산의 다른 추정량들을 비교하세요.
불편성이 유일한 기준이 아닙니다.
| 나눗셈 | 편향 | 분산 | 평균제곱오차 |
|---|---|---|---|
| 조금 작습니다 | (2n-1)\sigma^{4}/n^ | ||
| 더 큽니다 | 더 작습니다 | 정규에서 최소 |
셋째 줄이 뜻밖입니다. 정규 표본에서 평균제곱오차를 최소로 만드는 것은 로 나눈 것이며, 불편추정량이 최선이 아닙니다.
편향을 조금 받아들이고 분산을 더 줄이는 거래이며, 210강 편향-분산 분해와 211강 정규화가 같은 거래를 훨씬 큰 규모로 합니다. 릿지 회귀가 편향을 넣어 분산을 줄이는 것과 구조가 같습니다.
실무에서 을 쓰는 이유는 분포 이론이 깔끔하기 때문입니다. 로 나누면 카이제곱과의 관계가 지저분해져 신뢰구간을 만들기 어렵습니다.
심화 3. 분산의 신뢰구간을 만드세요.
문제 2의 정확한 분포가 바로 구간을 줍니다.
에 대해 풀면 다음이 됩니다.
| 특징 | 내용 |
|---|---|
| 비대칭 | 카이제곱이 치우쳐 있어 구간이 대칭이 아닙니다 |
| 정규 의존 | 평균의 구간보다 정규성에 훨씬 예민합니다 |
| 작은 | 에서 폭이 몇 배에 이릅니다 |
| 대안 | 부트스트랩이나 로그 변환을 씁니다 |
둘째 줄이 실무의 함정입니다. 평균의 구간은 중심극한정리 덕분에 비정규에서도 그런대로 맞지만, 분산의 카이제곱 구간은 첨도가 조금만 달라도 크게 틀립니다.
문제 5의 과소평가 배수 가 그대로 구간의 폭에 들어갑니다.
심화 4. 온라인으로 계산하는 방법을 정리하세요.
자료가 스트리밍으로 들어오면 두 번 훑을 수 없습니다.
웰포드 알고리즘이며 입니다.
| 방법 | 훑는 횟수 | 수치 안정성 |
|---|---|---|
| 정의대로 두 번 | 좋습니다 | |
| \sum x^{2}-n\bar{x}^ | 나쁩니다 | |
| 웰포드 | 좋습니다 | |
| 병렬 병합 | 좋습니다 |
둘째 줄이 133강 문제 1의 파국적 상쇄입니다. 평균이 인 자료에서 정확히 이 나왔던 그 계산이며, 한 번만 훑으려다 정밀도를 전부 잃습니다.
넷째 줄이 분산 학습에 필요합니다. 배치별로 계산한 를 병합하는 공식이 있으며, 244강 배치 정규화의 분산 집계가 이 방식입니다.
심화 5. 이 결과들이 정규성에 얼마나 기대는지 정리하세요.
| 결과 | 정규 없이도 성립하는가 | 비정규에서 |
|---|---|---|
| \mathbb{E}[S^{2}]=\sigma^ | 성립합니다 | 그대로입니다 |
| 의 정규성 | 성립하지 않습니다 | 큰 에서 근사 |
| 의 카이제곱 | 성립하지 않습니다 | 첨도에 따라 달라집니다 |
| \bar{X}\perp S^ | 성립하지 않습니다 | 왜도만큼 상관이 남습니다 |
| 성립하지 않습니다 | 항이 붙습니다 |
첫째 줄만 견고합니다. 불편성은 차 적률만 요구하므로 어떤 분포에서나 성립하며, 이것이 을 기본값으로 쓰는 이유입니다.
나머지 넷이 모두 정규를 요구합니다. 그러므로 정규성 확인이 형식적 절차가 아닙니다. 잔차 그림과 첨도 확인이 145강 이후의 모든 절차보다 먼저 와야 합니다.
진단은 간단합니다. 자료를 절반으로 나눠 각각 을 계산하고 그 차이가 정도인지 봅니다. 훨씬 크면 첨도가 큽니다.
심화 6. 기계학습에서 이 결과들이 쓰이는 자리를 정리하세요.
| 자리 | 무엇이 쓰이는가 | 관련 강의 |
|---|---|---|
| 배치 정규화 | 배치 내 표본분산과 편향 보정 | 244강 |
| 층 정규화 | 특징 축의 표본분산 | 245강 |
| 아담 최적화기 | 2차 모멘트 추정과 편향 보정 | 247강 |
| 가중치 초기화 | 층 출력 분산의 유지 | 243강 |
| 회귀 잔차 진단 | 자유도 의 잔차분산 | 153강 |
| 분산분석 | 코크런 분해와 비 | 152강 |
| 부트스트랩 | 분산의 분포를 재표본으로 | 151강 |
| 실험 반복 보고 | 표준편차 대 표준오차 | 209강 |
첫째 줄에 미묘한 점이 있습니다. 배치 정규화는 학습 중에는 으로 나눈 편향된 분산을 쓰고 추론용 이동평균에는 로 나눈 불편 분산을 씁니다. 정규화 자체는 배치 안에서만 일관되면 되지만, 추론 시점의 추정에는 불편성이 필요하기 때문입니다.
셋째 줄이 같은 이야기의 다른 판본입니다. 아담의 는 지수가중이라 초기에 쪽으로 치우치며, 로 나누는 편향 보정이 그것을 고칩니다. 문제 1의 과 같은 종류의 보정입니다.
여덟째 줄이 논문에서 자주 틀리는 자리입니다. 시드 개로 실험을 반복하고 뒤에 표준편차를 쓸지 표준오차를 쓸지 명시하지 않으면 읽는 쪽이 오해합니다. 표준편차는 개별 실행의 흩어짐이고 표준오차는 평균의 정밀도이며, 배 차이 납니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| S^ | 표본분산 | 로 나눈 제곱합입니다 |
| 표본표준편차 | 의 제곱근입니다 | |
| \chi^{2}_ | 자유도 카이제곱 | 표준정규 개의 제곱합입니다 |
| 자유도 | degrees of freedom | 잔차가 사는 차원입니다 |
| \mathbf | 일벡터 | 성분이 모두 인 벡터입니다 |
| 헬머트 변환 | Helmert transform | 첫 행이 인 직교변환입니다 |
| 코크런 정리 | Cochran's theorem | 이차형식 분해의 독립성입니다 |
| 지어 정리 | Geary's theorem | 독립성이 정규를 특징짓습니다 |
| \gamma_ | 왜도 | 치우침입니다 |
| \gamma_ | 초과첨도 | 꼬리의 두께입니다 |
| 웰포드 알고리즘 | Welford's algorithm | 한 번 훑는 안정한 분산 계산입니다 |
| 편향 보정 | bias correction | 추정의 체계적 치우침을 고칩니다 |
다음은 145강 카이제곱분포, 분포, 분포입니다. 이 강의가 재료를 다 모았습니다.
분자가 표준정규이고 분모가 독립인 카이제곱의 제곱근이므로 이 비의 분포를 정확히 계산할 수 있습니다. 문제 3에서 확인한 독립성이 없으면 이 식을 쓸 수 없습니다. 145강이 이 분포에 이름을 붙이고, 두 카이제곱의 비인 분포까지 세웁니다.
import numpy as np
rng = np.random.default_rng(20260812)
M = 100000
mu0, sg0 = 5.0, 2.0
def gamma_half(k):
if k % 2 == 0:
r = 1.0
for j in range(1, k // 2):
r *= j
return r
r = np.sqrt(np.pi)
for j in range((k - 1) // 2):
r *= (0.5 + j)
return r
def chi2_cdf(x, k):
L = k + 40.0 * np.sqrt(k) + 40.0
N = 400000
h = L / N
t = (np.arange(N) + 0.5) * h
d = t ** (k / 2.0 - 1) * np.exp(-t / 2) / (2 ** (k / 2.0) * gamma_half(k))
c = np.cumsum(d) * h
return np.interp(x, t, c)
def ksdist(z, grid, F):
zs = np.sort(z)
Fn = np.searchsorted(zs, grid, side="right") / len(z)
return float(np.max(np.abs(Fn - F)))
# --- 문제 1: 왜 n-1 로 나누는가 -----------------------------------------
print(" 정규 N(5, 4) 에서 뽑아 두 가지 나눗셈을 견줍니다. 참 분산은 4 입니다")
print(" n n 으로 나눔 n-1 로 나눔 n 의 편향 이론 편향")
for n in [2, 3, 5, 10, 30, 100]:
X = rng.normal(mu0, sg0, size=(M, n))
ss = ((X - X.mean(1, keepdims=True)) ** 2).sum(1)
a, b = float((ss / n).mean()), float((ss / (n - 1)).mean())
print(" %9d %12.6f %12.6f %12.6f %12.6f"
% (n, a, b, a - 4.0, -4.0 / n))
print(" 왼쪽은 언제나 작고 그 편향이 이론값 -sigma^2/n 과 표본오차 안에서 맞습니다")
print(" X 바를 쓴 순간 제곱합이 참 평균을 쓸 때보다 반드시 작아집니다")
# --- 문제 2: 표본분산의 분포는 무엇인가 ---------------------------------
print(" (n-1)S^2/sigma^2 이 자유도 n-1 카이제곱인지 봅니다")
print(" n 최대 거리 평균 수치 이론 n-1 분산 수치 이론 2(n-1)")
for n in [3, 5, 10, 30]:
X = rng.normal(mu0, sg0, size=(M, n))
ss = ((X - X.mean(1, keepdims=True)) ** 2).sum(1)
q = ss / (sg0 * sg0)
k = n - 1
grid = np.linspace(1e-6, k + 8 * np.sqrt(2 * k) + 10, 4001)
d = ksdist(q, grid, chi2_cdf(grid, k))
print(" %9d %12.8f %12.6f %10d %12.6f %10d"
% (n, d, float(q.mean()), k, float(q.var()), 2 * k))
print(" 자유도가 n 이 아니라 n-1 입니다. 평균과 분산이 그것을 확인해 줍니다")
# --- 문제 3: 표본평균과 표본분산은 독립인가 -----------------------------
print(" X 바와 S^2 의 상관계수를 정규와 지수에서 각각 봅니다")
print(" n 정규 상관계수 지수 상관계수")
for n in [5, 10, 30, 100]:
Xn = rng.normal(mu0, sg0, size=(M, n))
Xe = rng.exponential(1.0, size=(M, n))
out = []
for X in (Xn, Xe):
mb = X.mean(1)
s2 = ((X - mb[:, None]) ** 2).sum(1) / (n - 1)
out.append(float(np.corrcoef(mb, s2)[0, 1]))
print(" %9d %12.6f %12.6f" % (n, out[0], out[1]))
print(" 정규에서만 0 입니다. 지수에서는 n 을 키워도 0.7071 로 갑니다")
print(" 상관이 0 인 것으로는 부족하므로 조건부로도 확인합니다")
n = 10
print(" 분포 X 바 하위 10% 의 평균 S^2 상위 10% 의 평균 S^2 비")
for name, X in [("정규", rng.normal(mu0, sg0, size=(M, n))),
("지수", rng.exponential(1.0, size=(M, n)))]:
mb = X.mean(1)
s2 = ((X - mb[:, None]) ** 2).sum(1) / (n - 1)
lo = np.quantile(mb, 0.1)
hi = np.quantile(mb, 0.9)
a, b = float(s2[mb <= lo].mean()), float(s2[mb >= hi].mean())
print(" %10s %14.6f %14.6f %8.4f" % (name, a, b, b / a))
print(" 정규는 비가 1 에 가깝고 지수는 크게 다릅니다. 정규에서만 독립입니다")
# --- 문제 4: 왜 자유도가 n-1 인가 ---------------------------------------
print(" 헬머트 직교변환으로 자유도를 눈으로 확인합니다")
n = 6
H = np.zeros((n, n))
H[0, :] = 1.0 / np.sqrt(n)
for i in range(1, n):
H[i, :i] = 1.0 / np.sqrt(i * (i + 1.0))
H[i, i] = -i / np.sqrt(i * (i + 1.0))
print(" H H^T 와 단위행렬의 최대 차이 %.2e" % float(np.max(np.abs(H @ H.T - np.eye(n)))))
X = rng.normal(mu0, sg0, size=(200000, n))
Y = X @ H.T
print(" Y1 과 sqrt(n) X 바의 최대 차이 %.2e"
% float(np.max(np.abs(Y[:, 0] - np.sqrt(n) * X.mean(1)))))
ss = ((X - X.mean(1, keepdims=True)) ** 2).sum(1)
print(" Y2..Yn 제곱합과 (n-1)S^2 의 최대 차이 %.2e"
% float(np.max(np.abs((Y[:, 1:] ** 2).sum(1) - ss))))
C = np.corrcoef(Y.T)
print(" Y 성분들의 상관행렬과 단위행렬의 최대 차이 %.4f"
% float(np.max(np.abs(C - np.eye(n)))))
print(" Y2..Yn 의 평균 %.4f, 분산 %.4f (이론 0 과 %.1f)"
% (float(Y[:, 1:].mean()), float(Y[:, 1:].var()), sg0 * sg0))
print(" 1 벡터 방향 하나를 X 바가 가져가고 남은 n-1 차원이 자유도입니다")
print(" 80강 정사영이 그대로 쓰였습니다. 직교라서 독립이 따라옵니다")
# --- 문제 5: 정규가 아니면 S^2 이 얼마나 불안정한가 ---------------------
print(" S^2 의 분산을 세 분포에서 재고 정규 이론값과 견줍니다")
n = 20
print(" 분포 초과첨도 sigma^2 S^2 분산 수치 정확한 이론 정규 가정 이론 과소평가 배수")
for name, gen, s2t, ex in [("정규", lambda: rng.normal(0, 1, (M, n)), 1.0, 0.0),
("지수", lambda: rng.exponential(1.0, (M, n)), 1.0, 6.0),
("t(5)", lambda: rng.standard_t(5, (M, n)), 5.0 / 3.0, 6.0)]:
X = gen()
s2 = ((X - X.mean(1, keepdims=True)) ** 2).sum(1) / (n - 1)
v = float(s2.var())
exact = s2t * s2t * (2.0 / (n - 1) + ex / n)
norm = 2 * s2t * s2t / (n - 1)
print(" %8s %8.1f %8.4f %13.6f %13.6f %15.6f %12.2f"
% (name, ex, s2t, v, exact, norm, exact / norm))
print(" 정규를 가정하면 초과첨도가 6 일 때 S^2 의 분산을 3.85 배 과소평가합니다")
print(" t(5) 의 수치가 정확한 이론보다 작은 것은 우연이 아닙니다")
print(" S^2 의 분산을 표본으로 재려면 8차 적률이 필요한데 t(5) 에는 없습니다")
# 정규 N(5, 4) 에서 뽑아 두 가지 나눗셈을 견줍니다. 참 분산은 4 입니다
# n n 으로 나눔 n-1 로 나눔 n 의 편향 이론 편향
# 2 1.987981 3.975961 -2.012019 -2.000000
# 3 2.656511 3.984766 -1.343489 -1.333333
# 5 3.193103 3.991379 -0.806897 -0.800000
# 10 3.591570 3.990633 -0.408430 -0.400000
# 30 3.866703 4.000038 -0.133297 -0.133333
# 100 3.957563 3.997538 -0.042437 -0.040000
# 왼쪽은 언제나 작고 그 편향이 이론값 -sigma^2/n 과 표본오차 안에서 맞습니다
# X 바를 쓴 순간 제곱합이 참 평균을 쓸 때보다 반드시 작아집니다
# (n-1)S^2/sigma^2 이 자유도 n-1 카이제곱인지 봅니다
# n 최대 거리 평균 수치 이론 n-1 분산 수치 이론 2(n-1)
# 3 0.00177392 1.995611 2 3.960672 4
# 5 0.00371782 3.981929 4 7.994718 8
# 10 0.00306137 8.982102 9 17.994741 18
# 30 0.00239534 29.030772 29 58.363122 58
# 자유도가 n 이 아니라 n-1 입니다. 평균과 분산이 그것을 확인해 줍니다
# X 바와 S^2 의 상관계수를 정규와 지수에서 각각 봅니다
# n 정규 상관계수 지수 상관계수
# 5 -0.000374 0.685266
# 10 0.002944 0.698676
# 30 0.001469 0.702853
# 100 0.006118 0.706898
# 정규에서만 0 입니다. 지수에서는 n 을 키워도 0.7071 로 갑니다
# 상관이 0 인 것으로는 부족하므로 조건부로도 확인합니다
# 분포 X 바 하위 10% 의 평균 S^2 상위 10% 의 평균 S^2 비
# 정규 4.005147 4.006602 1.0004
# 지수 0.253228 2.420801 9.5598
# 정규는 비가 1 에 가깝고 지수는 크게 다릅니다. 정규에서만 독립입니다
# 헬머트 직교변환으로 자유도를 눈으로 확인합니다
# H H^T 와 단위행렬의 최대 차이 2.22e-16
# Y1 과 sqrt(n) X 바의 최대 차이 1.07e-14
# Y2..Yn 제곱합과 (n-1)S^2 의 최대 차이 4.26e-14
# Y 성분들의 상관행렬과 단위행렬의 최대 차이 0.0041
# Y2..Yn 의 평균 -0.0009, 분산 4.0009 (이론 0 과 4.0)
# 1 벡터 방향 하나를 X 바가 가져가고 남은 n-1 차원이 자유도입니다
# 80강 정사영이 그대로 쓰였습니다. 직교라서 독립이 따라옵니다
# S^2 의 분산을 세 분포에서 재고 정규 이론값과 견줍니다
# 분포 초과첨도 sigma^2 S^2 분산 수치 정확한 이론 정규 가정 이론 과소평가 배수
# 정규 0.0 1.0000 0.104832 0.105263 0.105263 1.00
# 지수 6.0 1.0000 0.407696 0.405263 0.105263 3.85
# t(5) 6.0 1.6667 0.905945 1.125731 0.292398 3.85
# 정규를 가정하면 초과첨도가 6 일 때 S^2 의 분산을 3.85 배 과소평가합니다
# t(5) 의 수치가 정확한 이론보다 작은 것은 우연이 아닙니다
# S^2 의 분산을 표본으로 재려면 8차 적률이 필요한데 t(5) 에는 없습니다