01단원이 자료를 손에 넣었습니다. 이제 그것을 몇 개의 숫자로 줄입니다.
요약은 버리는 일입니다. 만 개의 값을 평균 하나로 줄이면 나머지는 전부 사라지므로, 무엇을 남기고 무엇을 버릴지 정하는 것이 기술통계의 전부입니다.
그래서 물음이 둘입니다.
| 물음 | 답이 여럿입니다 |
|---|---|
| 중심을 무엇으로 잡는가 | 평균, 중앙값, 최빈값 |
| 퍼짐을 무엇으로 재는가 | 표준편차, 평균절대편차, MAD, IQR |
어느 것이 옳은지는 자료가 정하지 않습니다. 161강 문제 5에서 이미 보았습니다. 오염된 자료에서 평균은 이고 중앙값은 인데, 둘 다 맞는 답이며 다만 다른 질문에 답합니다.
이 강의는 그 둘을 하나의 틀로 묶습니다.
중심은 손실을 가장 작게 만드는 값이며, 를 무엇으로 두느냐가 평균과 중앙값을 가릅니다. 161강 심화 2에서 잠깐 나온 이 식이 여기서 출발점이 됩니다.
문제. 자료 이 있습니다.
(1) 손실 세 가지를 각각 가장 작게 만드는 를 찾으세요.
(2) 앞의 둘을 미분으로 유도하세요.
(3) 한 점을 에서 으로 옮겨 두 중심이 어떻게 반응하는지 보세요.
생각의 실마리. "가운데"라는 말은 정의가 아닙니다. 무엇에 대해 가운데인지를 정해야 하며, 그것은 자료에서 얼마나 떨어졌는가를 어떻게 재는지를 정하는 일입니다.
풀이. (1) 격자 점을 모두 훑어 최소점을 찾았습니다.
| 손실 | 최소로 만드는 | 공식이 주는 값 | 이름 |
|---|---|---|---|
| 제곱의 합 \sum(x_{i}-c)^ | 평균 | ||
| 절댓값의 합 | 중앙값 | ||
| 다른 것의 개수 | 최빈값 |
셋째 줄은 격자가 아니라 값마다 개수를 세어 찾았습니다. 가장 많은 값은 이 두 번입니다.
(2) 미분해 봅니다. 제곱 손실은 매끄러우므로 그대로 미분됩니다.
검산에서 입니다. 이것은 근사가 아니라 평균의 정의 그 자체이며, 문제 3에서 다시 쓰입니다.
절댓값 손실은 에서 미분되지 않지만 그 사이에서는 기울기가 상수입니다.
기울기가 이 되려면 양쪽 개수가 같아야 합니다. 검산에서 중앙값 보다 작은 값이 개, 큰 값이 개로 균형입니다.
두 유도가 두 중심의 성격을 이미 설명합니다. 제곱 손실의 기울기에는 값의 크기가 들어가고, 절댓값 손실의 기울기에는 개수만 들어갑니다.
(3) 한 점을 옮겨 봅니다.
| 자료 | 평균 | 중앙값 |
|---|---|---|
| 원자료 | ||
| 한 점을 으로 |
평균은 움직였고 중앙값은 전혀 움직이지 않았습니다.
한 점을 아무리 멀리 보내도 중앙값이 보는 것은 그 점이 여전히 가장 큰 값이라는 사실뿐입니다.
이 문제에서 배우는 것. 중심을 고르는 것은 손실 함수를 고르는 것입니다. 그리고 손실 함수를 고르는 것은 큰 오차를 얼마나 심각하게 볼지 정하는 일입니다. 제곱 손실은 오차 을 오차 보다 배 나쁘게 보므로 먼 점에 끌려가고, 절댓값 손실은 배로만 보므로 덜 끌려갑니다. 161강 문제 4의 붕괴점 과 가 이 차이의 다른 이름입니다.
바로 확인 1.
확인 1-1. 평균을 최소화 문제로 쓰세요.
답. 입니다.
확인 1-2. 절댓값 손실의 기울기가 무엇인지 쓰세요.
답. 보다 작은 값의 개수에서 큰 값의 개수를 뺀 것이며 이 되는 곳이 중앙값입니다.
확인 1-3. 검산에서 한 점을 으로 옮겼을 때 두 중심의 이동을 쓰세요.
답. 평균은 움직이고 중앙값은 움직입니다.
문제. 표준정규분포에서 퍼짐의 척도를 잽니다.
(1) 네 척도를 재고 와의 관계를 확인하세요.
(2) 범위를 척도로 쓸 수 있는지 판정하세요.
(3) 꼬리가 두꺼운 분포에서 어느 척도가 안정한지 비교하세요.
생각의 실마리. 퍼짐도 중심처럼 어떻게 재느냐의 문제입니다. 편차를 제곱해서 더할 수도 있고, 절댓값으로 더할 수도 있고, 순위만 볼 수도 있습니다. 문제 1의 세 손실이 그대로 대응합니다.
풀이. (1) 표본 만 개로 잽니다.
| 척도 | 수치 | 이론 |
|---|---|---|
| 표준편차 | ||
| 평균절대편차 | ||
| 중앙값 절대편차 MAD | ||
| 사분위 범위 IQR |
MAD에 을 곱하면 으로 표준편차와 눈금이 맞습니다. 이며, 161강에서 쓴 그 상수입니다.
정규분포에서 사분위수가 에 있으므로 IQR은 MAD의 정확히 두 배입니다.
이 비율은 정규분포에서만 성립합니다. 다른 분포에서 MAD에 을 곱하면 그것은 표준편차의 추정이 아니라 그냥 다른 숫자입니다.
(2) 범위를 봅니다.
| 표본 크기 | 범위의 평균 | 직전 대비 증가 |
|---|---|---|
| 없음 | ||
표본이 커질수록 계속 자랍니다. 정규분포의 퍼짐은 변하지 않는데 범위만 커지므로, 범위는 분포의 성질이 아니라 표본 크기의 성질입니다.
느리게 자라기는 합니다. 표본이 만 배 늘어도 범위는 배쯤이지만, 수렴하지 않는다는 것이 요점입니다. 크기가 다른 두 표본의 범위를 비교하는 것은 아무 뜻이 없습니다.
(3) 자유도 인 분포에서 번 시행했습니다.
| 척도 | 최솟값 | 최댓값 | 최대와 최소의 비 |
|---|---|---|---|
| 표본표준편차 | |||
| IQR |
같은 분포에서 뽑았는데 표준편차는 시행마다 배까지 벌어집니다. IQR은 퍼센트 안에서 흔들립니다.
이유는 적률에 있습니다. 자유도 인 분포는 차 적률이 없으므로 표본분산의 분산이 무한입니다. 147강에서 몬테카를로 추정의 오차가 차 적률에 달려 있다고 한 것과 같은 이야기입니다.
이 문제에서 배우는 것. 척도를 고르는 것도 손실을 고르는 것입니다. 그리고 고를 때 두 가지를 봅니다. 정규분포에서 얼마나 효율적인가와 정규가 아닐 때 얼마나 버티는가입니다. 표준편차는 앞이 최고이고 뒤가 최악이며, IQR은 반대입니다. 자료가 정규에 가깝다고 믿을 근거가 없으면 뒤를 택하는 것이 안전합니다.
바로 확인 2.
확인 2-1. 정규분포에서 IQR과 의 관계를 쓰세요.
답. 이며 MAD의 두 배입니다.
확인 2-2. 범위를 퍼짐의 척도로 쓸 수 없는 이유를 쓰세요.
답. 표본이 커지면 계속 자라 분포가 아니라 표본 크기를 재기 때문입니다.
확인 2-3. 검산에서 의 표준편차와 IQR의 흔들림을 쓰세요.
답. 표준편차는 최대와 최소의 비가 이고 IQR은 입니다.
문제. 표본분산의 분모를 정합니다.
(1) 과 의 기댓값을 표본 크기별로 구하세요.
(2) 왜 이어야 하는지 유도하세요.
(3) 표준편차도 불편인지 확인하세요.
생각의 실마리. 문제 1에서 표본평균이 제곱합을 가장 작게 만드는 점임을 보았습니다. 그런데 분산을 잴 때 우리가 알고 싶은 것은 참 평균에서의 제곱합입니다. 가장 작게 만드는 점에서 쟀으니 어떻게 될지 생각해 봅니다.
풀이. (1) 참 분산이 인 정규분포에서 잽니다.
| 표본 크기 | 로 나눔 | 로 나눔 | |
|---|---|---|---|
은 정확히 배만큼 작게 나옵니다. 에서는 절반입니다.
(2) 유도합니다. 참 평균을 라 하고 제곱합을 갈라 씁니다.
교차항이 사라지는 이유가 문제 1입니다. 이므로 교차항 가 입니다.
양변에 기댓값을 씌웁니다. 왼쪽은 이고 오른쪽 둘째 항은 이므로 다음이 나옵니다.
검산이 이 분해를 그대로 보여 줍니다. 에서 참 평균 기준 제곱합이 이고 표본평균 기준이 이며, 비가 로 정확히 입니다.
표본평균을 쓴 대가가 자유도 하나입니다. 편차 개 중 하나는 나머지로 정해지므로 자유롭게 움직이는 것이 개입니다.
(3) 그렇다면 표준편차는 어떻습니까.
| 표본 크기 | 수치 | 이론 c_ | 과의 차이 |
|---|---|---|---|
로 나눠도 표준편차는 여전히 작게 나옵니다. 에서 퍼센트나 작습니다.
이유는 젠센 부등식입니다. 제곱근이 오목함수이므로 다음이 성립합니다.
분산이 불편이면 그 제곱근은 불편일 수 없습니다. 132강 젠센이 그대로 쓰이며, 불편성이 비선형 변환을 통과하지 못한다는 일반적 사실의 한 사례입니다.
이 문제에서 배우는 것. 은 관습이 아니라 계산의 결과입니다. 그리고 그 계산이 말하는 것은 자료에서 뽑아 쓴 것만큼 자유도를 잃는다는 원리입니다. 회귀에서 계수 개를 추정하면 자유도가 가 되는 것도 같은 이유이며, 153강에서 조정 결정계수가 자유도로 벌점을 매긴 것이 이 원리의 적용입니다. 그리고 불편성이 만능이 아니라는 것도 함께 배웁니다. 표준편차는 대부분의 경우 그냥 씁니다.
바로 확인 3.
확인 3-1. 제곱합의 분해를 쓰세요.
답. 입니다.
확인 3-2. 검산에서 일 때 두 제곱합의 비를 쓰세요.
답. 로 입니다.
확인 3-3. 표준편차가 여전히 치우치는 이유를 쓰세요.
답. 제곱근이 오목함수라 젠센 부등식으로 이기 때문입니다.
문제. 요약값만으로 자료를 판정할 수 있는지 봅니다.
(1) 평균, 분산, 상관, 회귀직선이 모두 같은 자료 넷을 비교하세요.
(2) 치우친 분포에서 세 중심의 순서를 확인하세요.
(3) 평균이 자료가 없는 자리에 놓일 수 있는지 판정하세요.
생각의 실마리. 요약은 버리는 일이라고 했습니다. 그러면 버린 것 안에 중요한 것이 있었는지를 요약값만 보고 알 수 있느냐가 문제입니다.
풀이. (1) 앤스컴이 만든 네 자료입니다.
| 자료 | 평균 | 분산 | 평균 | 분산 | 상관 |
|---|---|---|---|---|---|
회귀직선까지 같습니다.
| 자료 | 직선 |
|---|---|
그런데 자료 는 가 두 개 값뿐입니다. 인 점 열 개와 인 점 하나이며, 그 한 점을 빼면 남은 가 모두 같아 직선을 그릴 수조차 없습니다.
161강 심화 4의 영향점이 극단으로 간 모습이며, 지렛대가 이보다 클 수 없습니다.
요약값이 같다고 자료가 같지 않습니다.
(2) 로그정규분포에서 세 중심을 잽니다.
| 요약값 | 수치 | 이론 |
|---|---|---|
| 최빈값 | ||
| 중앙값 | ||
| 평균 | ||
| 왜도 |
오른쪽으로 치우치면 최빈값 중앙값 평균이 됩니다. 셋의 간격이 왜도의 크기를 말해 주며, 이 순서 자체가 분포의 모양에 대한 정보입니다.
소득이나 접속 시간처럼 오른쪽 꼬리가 긴 자료에서 "평균"이라는 말이 위험한 이유가 이것입니다. 평균 소득이 중앙값 소득보다 훨씬 높은데, 대부분의 사람은 중앙값 근처에 있습니다.
(3) 봉우리가 둘인 자료를 봅니다.
| 항목 | 값 |
|---|---|
| 평균 | |
| 평균에서 이내에 있는 자료 | 개 중 개 |
평균 근처에 자료가 하나도 없습니다. 근처와 근처에 절반씩 있으므로 평균은 인데, 은 아무도 없는 골짜기입니다.
평균은 자료의 값이 아니라 균형점입니다. 시소의 받침점 같은 것이라 그 자리에 무엇이 있어야 할 이유가 없습니다.
이 문제에서 배우는 것. 요약값은 자료를 재구성하지 못합니다. 같은 요약값을 주는 자료가 무한히 많고, 그중에는 결론이 정반대인 것도 있습니다. 그래서 기술통계의 결론은 언제나 요약값과 그림을 함께 봐야 하며, 03단원 전체가 그 그림을 다룹니다. 그리고 요약값을 볼 때도 하나만 보지 않습니다. 평균과 중앙값을 나란히 놓으면 그 차이가 왜도를 말해 주고, 표준편차와 IQR을 나란히 놓으면 그 비가 꼬리의 두께를 말해 줍니다.
바로 확인 4.
확인 4-1. 앤스컴 자료 넷이 공유하는 요약값을 쓰세요.
답. 와 의 평균과 분산, 상관 , 회귀직선 입니다.
확인 4-2. 오른쪽으로 치우친 분포에서 세 중심의 순서를 쓰세요.
답. 최빈값 중앙값 평균입니다.
확인 4-3. 평균 근처에 자료가 없을 수 있는 이유를 쓰세요.
답. 평균은 자료의 값이 아니라 균형점이라 봉우리가 둘이면 골짜기에 놓입니다.
문제. 평균에도 종류가 있습니다.
(1) 산술, 기하, 조화 평균의 크기 관계를 확인하세요.
(2) 왕복 속도와 복리 수익률에서 무엇이 옳은지 판정하세요.
생각의 실마리. 평균을 낸다는 것은 여러 값을 하나로 대신하는 일입니다. 그렇다면 대신했을 때 무엇이 보존되어야 하는지가 어느 평균을 쓸지 정합니다.
풀이. (1) 자료 에서 잽니다.
| 평균의 종류 | 값 | 정의 |
|---|---|---|
| 산술평균 | \frac{1}{n}\sum x_ | |
| 기하평균 | \bigl(\prod x_{i}\bigr)^ | |
| 조화평균 |
무작위 표본 만 개에서도 입니다. 등호는 모든 값이 같을 때만 성립하며, 132강 젠센의 결과입니다.
(2) 어느 것이 옳은지는 무엇을 더하면 뜻이 통하는지가 정합니다.
왕복 속도부터 봅니다. 킬로미터를 시속 으로 가고 시속 으로 돌아옵니다.
| 항목 | 값 |
|---|---|
| 걸린 시간 | 시간 |
| 총 거리 | 킬로미터 |
| 실제 평균 속도 | 킬로미터 매시 |
| 조화평균 | 킬로미터 매시 |
| 산술평균을 쓰면 | 이며 시간이 시간이 되어 틀립니다 |
더해야 하는 것은 시간입니다. 시간은 속도의 역수에 비례하므로 역수를 평균해야 하고, 그것이 조화평균입니다.
복리 수익률을 봅니다. 한 해에 퍼센트 오르고 다음 해에 퍼센트 내립니다.
| 방법 | 결과 |
|---|---|
| 산술평균으로 재면 | 수익률 이라 본전으로 보입니다 |
| 실제로는 | 배가 되어 퍼센트를 잃었습니다 |
| 기하평균으로 재면 | 이며 실제와 맞습니다 |
더해야 하는 것은 로그입니다. 수익률은 곱으로 쌓이므로 로그를 취해야 덧셈이 되고, 로그의 산술평균이 기하평균입니다.
이 문제에서 배우는 것. 평균을 고르는 규칙은 하나입니다. 무엇을 더하면 뜻이 통하는지 보고, 그것을 더한 뒤 되돌립니다. 시간을 더하면 조화평균, 로그를 더하면 기하평균, 값을 그대로 더하면 산술평균입니다. 그리고 틀린 평균을 쓰면 언제나 실제보다 좋게 나옵니다. 산술은 셋 중 가장 크므로, 속도든 수익률이든 산술평균은 실제보다 유리한 숫자를 만들어 냅니다. 그것이 잘못된 평균이 자주 쓰이는 이유이기도 합니다.
바로 확인 5.
확인 5-1. 세 평균의 크기 관계와 등호 조건을 쓰세요.
답. 산술 기하 조화이며 등호는 모든 값이 같을 때만 성립합니다.
확인 5-2. 검산의 왕복에서 옳은 평균 속도와 그 근거를 쓰세요.
답. 킬로미터 매시이며 더해야 하는 것이 시간이라 조화평균입니다.
확인 5-3. 곱으로 쌓이는 값에 어느 평균을 쓰는지 쓰세요.
답. 로그를 더해야 하므로 기하평균을 씁니다.
| 중심 | 최소화하는 손실 | 붕괴점 |
|---|---|---|
| 평균 | 제곱의 합 | |
| 중앙값 | 절댓값의 합 | |
| 최빈값 | 다른 것의 개수 | 정의에 따라 다릅니다 |
| 퍼짐 | 정규분포에서 와의 관계 | 붕괴점 |
|---|---|---|
| 표준편차 | ||
| 평균절대편차 | ||
| MAD | ||
| IQR | ||
| 범위 | 표본 크기에 따라 자랍니다 |
| 평균의 종류 | 언제 쓰는가 | 더하는 것 |
|---|---|---|
| 산술 | 값이 더해질 때 | 값 |
| 기하 | 값이 곱해질 때 | 로그 |
| 조화 | 값이 비율일 때 | 역수 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 치우친 자료를 평균으로 요약합니다 | 중앙값을 함께 적습니다 |
| 표본 크기가 다른 두 범위를 비교합니다 | 범위는 표본 크기를 잽니다 |
| 으로 나눈 분산을 씁니다 | 배만큼 작습니다 |
| 가 불편이라고 생각합니다 | 분산만 불편이고 는 아닙니다 |
| 요약값이 같으면 같은 자료라고 봅니다 | 앤스컴 자료 넷이 반례입니다 |
| 평균 속도를 산술평균으로 냅니다 | 조화평균입니다 |
| 연평균 수익률을 산술평균으로 냅니다 | 기하평균입니다 |
문제 6. 평균과 중앙값을 각각 최소화 문제로 쓰세요.
답. 제곱의 합과 절댓값의 합을 각각 최소로 만드는 값입니다.
문제 7. 인 이유를 쓰세요.
답. 제곱 손실의 미분을 으로 둔 것이 평균의 정의이기 때문입니다.
문제 8. 검산에서 한 점을 으로 옮겼을 때 두 중심의 이동을 쓰세요.
답. 평균은 움직이고 중앙값은 움직이지 않습니다.
문제 9. 정규분포에서 MAD와 IQR을 로 쓰세요.
답. 와 이며 IQR이 MAD의 두 배입니다.
문제 10. MAD에 을 곱하는 이유를 쓰세요.
답. 이며 정규분포에서 표준편차와 눈금을 맞추기 위해서입니다.
문제 11. 범위가 척도가 되지 못하는 이유를 검산 값과 함께 쓰세요.
답. 표본이 에서 만으로 갈 때 에서 로 계속 자라기 때문입니다.
문제 12. 검산에서 의 표준편차와 IQR의 흔들림을 쓰세요.
답. 최대와 최소의 비가 각각 와 입니다.
문제 13. 제곱합의 분해를 쓰세요.
답. 입니다.
문제 14. 를 쓰세요.
답. 입니다.
문제 15. 검산에서 일 때 로 나눈 값을 쓰세요.
답. 로 참값의 절반입니다.
문제 16. 표준편차가 불편이 아닌 이유를 쓰세요.
답. 제곱근이 오목함수라 젠센 부등식으로 이기 때문입니다.
문제 17. 앤스컴 자료 의 특징을 쓰세요.
답. 가 두 값뿐이고 한 점이 기울기를 혼자 정합니다.
문제 18. 검산에서 로그정규의 세 중심을 쓰세요.
답. 최빈값 , 중앙값 , 평균 입니다.
심화 1. 분위수를 손실 최소화로 정리하세요.
중앙값이 절댓값 손실의 최소점이었습니다. 손실을 좌우 비대칭으로 만들면 다른 분위수가 나옵니다.
이것을 핀볼 손실이라 부릅니다. 이면 절댓값 손실의 절반이라 중앙값이 나오고, 이면 번째 백분위수가 나옵니다.
기울기를 계산하면 이유가 보입니다.
으로 두면 보다 작은 값이 전체의 비율이 됩니다. 그것이 분위수의 정의입니다.
| 벌하는 방식 | 결과 | |
|---|---|---|
| 양쪽을 똑같이 | 중앙값 | |
| 과소예측을 배 무겁게 | 번째 백분위수 | |
| 과대예측을 배 무겁게 | 번째 백분위수 |
분위수 회귀가 여기서 나옵니다. 조건부 평균이 아니라 조건부 중앙값이나 조건부 번째 백분위수를 직접 모형화하며, 재고 예측처럼 과소와 과대의 비용이 다른 문제에서 그대로 쓰입니다.
165강의 상자그림도 결국 분위수 다섯 개입니다.
심화 2. 적률을 정리하세요.
평균과 분산은 적률의 처음 둘입니다.
| 차수 | 이름 | 무엇을 재는가 |
|---|---|---|
| 평균 | 위치 | |
| 분산 | 퍼짐 | |
| 왜도 | 좌우 비대칭 | |
| 첨도 | 꼬리의 두께 |
차수가 오를수록 꼬리에 더 민감해집니다. 차 적률은 편차를 제곱하므로, 멀리 있는 점 하나가 가 클수록 크게 기여합니다.
그래서 높은 차수의 적률은 추정이 어렵습니다. 문제 2에서 의 표본표준편차가 흔들린 것이 차 적률의 부재 때문이었는데, 왜도와 첨도의 추정은 그보다 더 나쁩니다.
| 추정하려는 것 | 안정하려면 필요한 것 |
|---|---|
| 평균 | 차 적률 |
| 분산 | 차 적률 |
| 왜도 | 차 적률 |
| 첨도 | 차 적률 |
적률이 분포를 결정하지 못하는 경우도 있습니다. 로그정규분포는 모든 적률이 유한한데, 같은 적률을 전부 공유하는 다른 분포가 존재합니다. 적률만으로 분포를 안다고 할 수 없다는 뜻이며, 143강에서 특성함수를 쓴 이유가 여기 있습니다.
심화 3. 온라인 알고리즘을 정리하세요.
자료가 흘러 들어올 때 전부 저장하지 않고 평균과 분산을 갱신하는 방법입니다.
단순한 방법이 왜 위험한지부터 봅니다. 와 를 따로 쌓아 두고 분산을 로 계산하는 방식은, 값이 크고 분산이 작을 때 거의 같은 두 큰 수를 빼게 됩니다.
158강 문제 2의 파국적 상쇄가 그대로 일어나며, 분산이 음수로 나오는 일까지 생깁니다.
웰퍼드 알고리즘이 이것을 피합니다.
편차끼리 곱하므로 큰 수를 빼는 일이 없습니다. 한 번만 훑고, 저장은 세 개의 수로 끝나며, 수치적으로 안정합니다.
분위수는 사정이 다릅니다. 중앙값을 정확히 알려면 원칙적으로 자료를 다 봐야 하므로, 스트리밍에서는 근사 알고리즘을 씁니다. 정확도와 메모리를 맞바꾸는 구조이며, 평균이 상수 메모리로 정확한 것과 대비됩니다.
심화 4. 가중평균과 그 함정을 정리하세요.
관측마다 무게가 다를 때 가중평균을 씁니다.
| 무게가 나오는 곳 | 예 |
|---|---|
| 표집 확률의 역수 | 175강 층화 표본 |
| 관측의 정밀도 | 분산이 작을수록 크게 |
| 집단의 크기 | 지역별 평균을 전국 평균으로 |
셋째 줄에서 사고가 납니다. 지역별 평균을 단순평균하면 인구가 적은 지역이 과대 대표됩니다.
등호가 성립하려면 모든 지역의 크기가 같아야 합니다.
이것이 심슨의 역설과 이어집니다. 153강 문제 5에서 집단별 기울기가 인데 전체 기울기가 였습니다. 집단의 크기가 다르고 집단마다 의 분포가 다르면, 집단 안의 관계와 합친 뒤의 관계가 반대로 나올 수 있습니다.
가중평균의 무게를 무엇으로 둘지는 통계가 아니라 질문이 정합니다. "평균적인 지역"을 묻는지 "평균적인 사람"을 묻는지에 따라 답이 다르며, 둘 다 정당한 질문입니다.
심화 5. 요약값의 불확실성을 정리하세요.
요약값 자체도 표본마다 흔들립니다. 평균 하나를 적어 놓으면 그것이 얼마나 믿을 만한지가 빠집니다.
중앙값의 표준오차는 이보다 큽니다.
정규분포에서는 이므로 평균보다 배 큽니다. 분산으로는 배입니다.
| 상황 | 무엇을 쓰는가 |
|---|---|
| 정규에 가까움 | 중앙값의 분산이 퍼센트 큽니다 |
| 꼬리가 두꺼움 | 중앙값이 훨씬 낫습니다 |
| 오염 가능성 | 중앙값이나 절사평균 |
둘째 줄이 자유도 인 분포에서 확인됩니다. 문제 2에서 표준편차가 배까지 흔들렸는데, 같은 자료에서 IQR은 퍼센트 안이었습니다.
분위수의 표준오차는 분포의 밀도에 달려 있습니다. 위 식의 이 중앙값 자리의 밀도인데, 자료가 드문 자리의 분위수일수록 부정확합니다. 번째 백분위수가 중앙값보다 훨씬 크게 흔들리는 이유이며, 꼬리 위험을 다룰 때 늘 문제가 됩니다.
심화 6. 이 강의가 어디에 쓰이는지 정리하세요.
| 분야 | 쓰임 | 이어지는 강의 |
|---|---|---|
| 분포의 모양 | 왜도와 첨도로 비대칭과 꼬리를 잽니다 | 164강 |
| 분위수 | 상자그림으로 다섯 수를 그립니다 | 165강 |
| 두 변수 | 공분산과 상관으로 관계를 요약합니다 | 166강 |
| 손실 함수 | 회귀가 조건부 평균을 맞힙니다 | S8 |
넷째 줄이 가장 멀리 갑니다. 문제 1의 식에서 를 상수가 아니라 의 함수로 바꾸면 그대로 회귀입니다.
제곱 손실을 쓰면 조건부 평균을 맞히고 절댓값 손실을 쓰면 조건부 중앙값을 맞힙니다. 이 강의에서 중심을 고른 것과 모형에서 손실을 고르는 것이 정확히 같은 결정이며, 이상치가 많은 자료에서 제곱 손실 회귀가 흔들리는 이유도 문제 1의 그림 그대로입니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| \bar | 엑스 바 | 표본평균입니다 |
| s^ | 에스 제곱 | 표본분산이며 분모가 입니다 |
| 로 | 손실 함수입니다 | |
| MAD | 중앙값 절대편차 | 중앙값에서의 절대편차의 중앙값입니다 |
| IQR | 사분위 범위 | 입니다 |
| 범위 | range | 최댓값에서 최솟값을 뺍니다 |
| 자유도 | degrees of freedom | 자유롭게 움직이는 편차의 개수입니다 |
| c_ | 씨 사 | 인 보정상수입니다 |
| 왜도 | skewness | 좌우 비대칭의 정도입니다 |
| 기하평균 | geometric mean | 로그의 산술평균을 되돌린 값입니다 |
| 조화평균 | harmonic mean | 역수의 산술평균을 되돌린 값입니다 |
| 핀볼 손실 | pinball loss | 좌우를 다르게 벌해 분위수를 냅니다 |
| 웰퍼드 알고리즘 | Welford's algorithm | 한 번 훑어 안정하게 분산을 냅니다 |
| 앤스컴 자료 | Anscombe's quartet | 요약값이 같고 모양이 다른 넷입니다 |
다음은 164강 분포의 모양: 왜도와 첨도입니다. 이 강의가 중심과 퍼짐을 다뤘고, 다음은 그 둘로 잡히지 않는 것을 다룹니다.
문제 4에서 이미 한 발을 들였습니다. 최빈값 중앙값 평균이라는 순서가 비대칭의 신호였고, 왜도 가 그것을 하나의 숫자로 만든 값이었습니다.
그리고 문제 2의 물음이 다시 나옵니다. 자유도 인 분포에서 표준편차가 흔들린 것은 꼬리가 두껍기 때문인데, 두껍다는 것을 어떻게 재는지는 아직 정하지 않았습니다. 심화 2에서 본 것처럼 그 척도 자체가 높은 차수의 적률이라 재려는 대상이 바로 재는 도구를 망가뜨립니다. 다음 강의의 주제가 그 순환입니다.
import math
import numpy as np
rng = np.random.default_rng(20260831)
def pw(s, n):
k = n - sum(2 if ord(c) > 0x2FFF else 1 for c in str(s))
return str(s) + " " * max(k, 0)
def rw(s, n):
k = n - sum(2 if ord(c) > 0x2FFF else 1 for c in str(s))
return " " * max(k, 0) + str(s)
# --- 문제 1: 중심을 무엇으로 정의하는가 ---------------------------------
print(" 중심을 손실을 가장 작게 만드는 값으로 정의합니다")
x = np.array([2.0, 3.0, 3.0, 5.0, 9.0, 14.0, 20.0])
print(" 자료 %s" % ", ".join("%.0f" % v for v in x))
g = np.linspace(-5.0, 30.0, 3500001)
c2 = float(g[int(np.argmin(((x[:, None] - g[None, :]) ** 2).sum(axis=0)))])
c1 = float(g[int(np.argmin(np.abs(x[:, None] - g[None, :]).sum(axis=0)))])
u, k = np.unique(x, return_counts=True)
c0 = float(u[int(np.argmax(k))])
print(" %s %s %s %s" % (pw("손실", 22), rw("최소로 만드는 c", 18),
rw("공식이 주는 값", 16), rw("이름", 10)))
print(" %s %18.4f %16.4f %10s" % (pw("제곱의 합", 22), c2, float(x.mean()), rw("평균", 10)))
print(" %s %18.4f %16.4f %10s" % (pw("절댓값의 합", 22), c1, float(np.median(x)), rw("중앙값", 10)))
print(" %s %18.4f %16.4f %10s" % (pw("다른 것의 개수", 22), c0, c0, rw("최빈값", 10)))
print(" 앞의 둘은 격자 %d 점을 모두 훑어 찾았고 공식값과 맞습니다" % len(g))
print(" 셋째는 값마다 개수를 세어 찾았습니다. 가장 많은 값은 %.0f 이 %d 번입니다"
% (c0, int(k.max())))
print(" 제곱 합을 c 로 미분하면 -2 sum(x_i - c) 이고 0 으로 두면 c 가 평균입니다")
print(" 실제로 sum(x_i - 평균) = %.10f 이며 언제나 정확히 0 입니다"
% float((x - x.mean()).sum()))
print(" 절댓값 합의 기울기는 c 보다 작은 값의 개수에서 큰 값의 개수를 뺀 것입니다")
med = float(np.median(x))
print(" 중앙값 %.1f 보다 작은 값 %d 개, 큰 값 %d 개로 균형이 맞습니다"
% (med, int((x < med).sum()), int((x > med).sum())))
print(" 두 손실이 이상치를 다르게 벌합니다. 한 점을 20 에서 200 으로 옮겨 봅니다")
y = x.copy()
y[-1] = 200.0
print(" %s %s %s" % (pw("자료", 22), rw("평균", 12), rw("중앙값", 12)))
print(" %s %12.4f %12.4f" % (pw("원자료", 22), float(x.mean()), float(np.median(x))))
print(" %s %12.4f %12.4f" % (pw("한 점을 200 으로", 22), float(y.mean()), float(np.median(y))))
print(" 평균은 %.4f 움직였고 중앙값은 %.4f 움직였습니다"
% (float(y.mean() - x.mean()), float(np.median(y) - np.median(x))))
print(" 제곱 손실은 먼 점을 더 세게 벌하므로 평균이 그쪽으로 끌려갑니다")
print(" 161강 문제 4 의 붕괴점 차이가 이 손실 함수의 차이에서 나옵니다")
# --- 문제 2: 퍼짐을 무엇으로 재는가 -------------------------------------
print(" 표준정규에서 퍼짐의 척도 넷을 재고 표준편차와 견줍니다")
n2 = 2000000
z = rng.normal(0, 1, n2)
mo = float(np.median(z))
q1, q3 = float(np.quantile(z, 0.25)), float(np.quantile(z, 0.75))
rows = [("표준편차", float(z.std()), 1.0, "sigma"),
("평균절대편차", float(np.abs(z - z.mean()).mean()), np.sqrt(2 / np.pi),
"sqrt(2/pi) sigma"),
("중앙값 절대편차 MAD", float(np.median(np.abs(z - mo))), 0.6744897502,
"0.6745 sigma"),
("사분위 범위 IQR", q3 - q1, 1.3489795004, "1.3490 sigma")]
print(" %s %s %s %s" % (pw("척도", 22), rw("수치", 12), rw("이론", 12), "이론값의 꼴"))
for nm, v, t, s in rows:
print(" %s %12.6f %12.6f %s" % (pw(nm, 22), v, t, s))
print(" MAD 에 1.4826 을 곱하면 %.6f 로 표준편차와 눈금이 맞습니다"
% (float(np.median(np.abs(z - mo))) * 1.4826))
print(" 넷 다 퍼짐을 재지만 이 비율은 정규분포에서만 성립합니다")
print(" 범위는 척도로 쓸 수 없습니다. 표본이 커지면 끝없이 자랍니다")
print(" %s %s %s" % (pw("표본 크기", 12), rw("범위의 평균", 14),
rw("직전 대비 증가", 16)))
prev = None
for m in [10, 100, 10000, 1000000]:
r = float(np.mean([np.ptp(rng.normal(0, 1, m)) for _ in range(100)]))
print(" %s %14.6f %16s"
% (pw(str(m), 12), r, "-" if prev is None else "%.4f" % (r - prev)))
prev = r
print(" 표본이 10 만 배 늘어도 범위는 3 배쯤만 자랍니다. 그래도 수렴하지는 않습니다")
print(" 꼬리가 두꺼우면 표준편차 자체가 안정되지 않습니다")
ss = np.array([float(rng.standard_t(3, 20000).std()) for _ in range(40)])
qs = np.array([float(np.quantile(v, 0.75) - np.quantile(v, 0.25))
for v in (rng.standard_t(3, 20000) for _ in range(40))])
print(" %s %s %s %s" % (pw("자유도 3 인 t 분포", 22), rw("최솟값", 12),
rw("최댓값", 12), rw("최대/최소", 12)))
print(" %s %12.4f %12.4f %12.4f"
% (pw("40 번 시행의 표준편차", 22), float(ss.min()), float(ss.max()),
float(ss.max() / ss.min())))
print(" %s %12.4f %12.4f %12.4f"
% (pw("40 번 시행의 IQR", 22), float(qs.min()), float(qs.max()),
float(qs.max() / qs.min())))
print(" 147강에서 본 것과 같습니다. 4 차 적률이 없으면 표본분산이 흔들립니다")
# --- 문제 3: 왜 n-1 로 나누는가 -----------------------------------------
print(" 표본분산의 분모를 n 과 n-1 로 두고 기댓값을 견줍니다. 참 분산은 1 입니다")
print(" %s %s %s %s" % (pw("표본 크기 n", 12), rw("1/n 로 나눔", 14),
rw("1/(n-1) 로 나눔", 16), rw("(n-1)/n", 12)))
M3 = 300000
for n in [2, 3, 5, 10, 50]:
S = rng.normal(0, 1, (M3, n))
d = S - S.mean(axis=1, keepdims=True)
q = (d * d).sum(axis=1)
print(" %s %14.6f %16.6f %12.6f"
% (pw(str(n), 12), float((q / n).mean()), float((q / (n - 1)).mean()),
(n - 1) / n))
print(" 1/n 은 언제나 (n-1)/n 배만큼 작게 나옵니다")
print(" 편차를 참 평균이 아니라 표본평균에서 재기 때문입니다")
print(" 문제 1 에서 본 그대로입니다. 표본평균이 제곱합을 최소로 만드는 점입니다")
print(" 참 평균에서 재면 더 큰 값이 나옵니다. 그 손해가 정확히 자유도 하나입니다")
S = rng.normal(0, 1, (M3, 5))
print(" n = 5 에서 참 평균 기준 제곱합 %.6f, 표본평균 기준 %.6f, 비 %.6f"
% (float((S ** 2).sum(axis=1).mean()),
float(((S - S.mean(axis=1, keepdims=True)) ** 2).sum(axis=1).mean()),
float(((S - S.mean(axis=1, keepdims=True)) ** 2).sum(axis=1).mean()
/ (S ** 2).sum(axis=1).mean())))
print(" 그런데 표준편차는 n-1 로 나눠도 여전히 작게 나옵니다")
print(" %s %s %s %s" % (pw("표본 크기 n", 12), rw("E[s] 수치", 14),
rw("이론 c4", 14), rw("1 과의 차이", 14)))
for n in [2, 3, 5, 10, 50]:
s = rng.normal(0, 1, (200000, n)).std(axis=1, ddof=1)
c4 = math.exp(0.5 * math.log(2.0 / (n - 1))
+ math.lgamma(n / 2.0) - math.lgamma((n - 1) / 2.0))
print(" %s %14.6f %14.6f %14.6f" % (pw(str(n), 12), float(s.mean()), c4, c4 - 1))
print(" 제곱근이 오목함수라 젠센 부등식으로 E[s] < sigma 입니다")
print(" 분산이 불편이면 그 제곱근은 불편일 수 없습니다. 132강 젠센이 그대로 쓰입니다")
# --- 문제 4: 요약값이 언제 거짓말하는가 ---------------------------------
print(" 평균과 분산이 같은데 모양이 전혀 다른 자료 넷을 봅니다")
ax = np.array([10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5], dtype=float)
a4 = np.array([8, 8, 8, 8, 8, 8, 8, 19, 8, 8, 8], dtype=float)
quart = [
(ax, np.array([8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68])),
(ax, np.array([9.14, 8.14, 8.74, 8.77, 9.26, 8.10, 6.13, 3.10, 9.13, 7.26, 4.74])),
(ax, np.array([7.46, 6.77, 12.74, 7.11, 7.81, 8.84, 6.08, 5.39, 8.15, 6.42, 5.73])),
(a4, np.array([6.58, 5.76, 7.71, 8.84, 8.47, 7.04, 5.25, 12.50, 5.56, 7.91, 6.89])),
]
print(" %s %s %s %s %s %s" % (pw("자료", 8), rw("x 평균", 9), rw("x 분산", 9),
rw("y 평균", 9), rw("y 분산", 9), rw("상관", 9)))
for i, (a, b) in enumerate(quart):
print(" %s %9.3f %9.3f %9.3f %9.3f %9.3f"
% (pw(str(i + 1), 8), float(a.mean()), float(a.var(ddof=1)),
float(b.mean()), float(b.var(ddof=1)), float(np.corrcoef(a, b)[0, 1])))
print(" 네 자료의 회귀직선도 같습니다")
for i, (a, b) in enumerate(quart):
A = np.stack([np.ones(len(a)), a], axis=1)
co = np.linalg.lstsq(A, b, rcond=None)[0]
print(" 자료 %d 의 직선 y = %.3f + %.3f x" % (i + 1, co[0], co[1]))
print(" 그런데 자료 4 는 x 가 %d 개 값뿐이고 한 점이 전부를 정합니다"
% len(np.unique(a4)))
print(" 그 한 점을 빼면 남은 x 는 모두 8 이라 직선을 그릴 수조차 없습니다")
print(" 요약값이 같다고 자료가 같지 않습니다. 그림을 봐야 하는 이유입니다")
print(" 치우친 분포에서는 평균과 중앙값과 최빈값이 셋 다 다릅니다")
n4 = 2000000
ln = np.exp(rng.normal(0, 1, n4))
h, e = np.histogram(ln, bins=np.linspace(0, 6, 1201))
hs = np.convolve(h.astype(float), np.ones(41) / 41, mode="same")
j = int(np.argmax(hs))
mode = float((e[j] + e[j + 1]) / 2)
c = (ln - ln.mean()) / ln.std()
print(" %s %s %s" % (pw("요약값", 16), rw("수치", 12), rw("이론", 12)))
print(" %s %12.6f %12.6f" % (pw("최빈값", 16), mode, math.exp(-1.0)))
print(" %s %12.6f %12.6f" % (pw("중앙값", 16), float(np.median(ln)), 1.0))
print(" %s %12.6f %12.6f" % (pw("평균", 16), float(ln.mean()), math.exp(0.5)))
print(" %s %12.6f %12.6f" % (pw("왜도", 16), float((c ** 3).mean()),
(math.e + 2) * math.sqrt(math.e - 1)))
print(" 최빈값은 폭 0.005 인 계급을 41 개씩 평활해 찾았습니다. 봉우리가 평평합니다")
print(" 오른쪽으로 치우치면 최빈값 < 중앙값 < 평균 순서가 됩니다")
print(" 평균이 자료가 거의 없는 자리에 놓이기도 합니다")
bm = np.concatenate([rng.normal(-4, 0.5, n4 // 2), rng.normal(4, 0.5, n4 // 2)])
near = int((np.abs(bm - bm.mean()) < 1.0).sum())
print(" 봉우리 두 개인 자료의 평균은 %.4f 입니다" % float(bm.mean()))
print(" 평균에서 1 이내에 있는 자료는 %d 개 중 %d 개입니다" % (len(bm), near))
print(" 평균은 자료의 값이 아니라 균형점입니다. 아무도 없는 곳일 수 있습니다")
# --- 문제 5: 어떤 평균을 써야 하는가 ------------------------------------
print(" 양수 자료에서 세 평균의 크기를 견줍니다")
v = np.array([1.0, 2.0, 4.0, 8.0, 16.0])
am = float(v.mean())
gm = float(np.exp(np.log(v).mean()))
hm = float(len(v) / (1.0 / v).sum())
print(" 자료 %s" % ", ".join("%.0f" % t for t in v))
print(" %s %s" % (pw("평균의 종류", 16), rw("값", 12)))
for nm, t in [("산술평균", am), ("기하평균", gm), ("조화평균", hm)]:
print(" %s %12.6f" % (pw(nm, 16), t))
print(" 산술 >= 기하 >= 조화 가 성립하는가: %s" % str(am >= gm >= hm))
big = np.exp(rng.normal(0, 1, 200000))
print(" 무작위 20 만 개에서도 %.6f >= %.6f >= %.6f 입니다"
% (float(big.mean()), float(np.exp(np.log(big).mean())),
float(len(big) / (1.0 / big).sum())))
print(" 등호는 모든 값이 같을 때만 성립합니다. 132강 젠센의 결과입니다")
print(" 같은 거리를 갈 때와 올 때 속도가 다르면 평균 속도는 조화평균입니다")
d5 = 120.0
t_go, t_back = d5 / 60.0, d5 / 30.0
print(" %.0f km 를 시속 60 으로 가고 시속 30 으로 돌아옵니다" % d5)
print(" 걸린 시간 %.1f + %.1f = %.1f 시간, 총 거리 %.0f km" % (t_go, t_back, t_go + t_back, 2 * d5))
print(" 실제 평균 속도는 %.4f km/h 이며 이 값이 곧 조화평균 %.4f 입니다"
% (2 * d5 / (t_go + t_back), 2.0 / (1.0 / 60 + 1.0 / 30)))
print(" 산술평균 %.4f 로 계산하면 걸린 시간이 %.4f 시간이 되어 틀립니다"
% ((60 + 30) / 2.0, 2 * d5 / ((60 + 30) / 2.0)))
print(" 수익률처럼 곱으로 쌓이는 값은 기하평균을 씁니다")
r = np.array([1.5, 0.5])
print(" 한 해에 50 퍼센트 오르고 다음 해에 50 퍼센트 내립니다")
print(" 산술평균으로 재면 수익률이 %.4f 라 본전으로 보입니다" % (float(r.mean()) - 1))
print(" 실제로는 %.4f 배가 되어 %.2f 퍼센트를 잃었습니다"
% (float(np.prod(r)), (float(np.prod(r)) - 1) * 100))
print(" 기하평균 수익률 %.6f 가 실제와 맞습니다" % (float(np.exp(np.log(r).mean())) - 1))
print(" 무엇을 더하면 뜻이 통하는지가 어느 평균을 쓸지 정합니다")
print(" 시간을 더하면 조화평균, 로그를 더하면 기하평균, 값을 더하면 산술평균입니다")
# 중심을 손실을 가장 작게 만드는 값으로 정의합니다
# 자료 2, 3, 3, 5, 9, 14, 20
# 손실 최소로 만드는 c 공식이 주는 값 이름
# 제곱의 합 8.0000 8.0000 평균
# 절댓값의 합 5.0000 5.0000 중앙값
# 다른 것의 개수 3.0000 3.0000 최빈값
# 앞의 둘은 격자 3500001 점을 모두 훑어 찾았고 공식값과 맞습니다
# 셋째는 값마다 개수를 세어 찾았습니다. 가장 많은 값은 3 이 2 번입니다
# 제곱 합을 c 로 미분하면 -2 sum(x_i - c) 이고 0 으로 두면 c 가 평균입니다
# 실제로 sum(x_i - 평균) = 0.0000000000 이며 언제나 정확히 0 입니다
# 절댓값 합의 기울기는 c 보다 작은 값의 개수에서 큰 값의 개수를 뺀 것입니다
# 중앙값 5.0 보다 작은 값 3 개, 큰 값 3 개로 균형이 맞습니다
# 두 손실이 이상치를 다르게 벌합니다. 한 점을 20 에서 200 으로 옮겨 봅니다
# 자료 평균 중앙값
# 원자료 8.0000 5.0000
# 한 점을 200 으로 33.7143 5.0000
# 평균은 25.7143 움직였고 중앙값은 0.0000 움직였습니다
# 제곱 손실은 먼 점을 더 세게 벌하므로 평균이 그쪽으로 끌려갑니다
# 161강 문제 4 의 붕괴점 차이가 이 손실 함수의 차이에서 나옵니다
# 표준정규에서 퍼짐의 척도 넷을 재고 표준편차와 견줍니다
# 척도 수치 이론 이론값의 꼴
# 표준편차 1.000316 1.000000 sigma
# 평균절대편차 0.797955 0.797885 sqrt(2/pi) sigma
# 중앙값 절대편차 MAD 0.674147 0.674490 0.6745 sigma
# 사분위 범위 IQR 1.348321 1.348980 1.3490 sigma
# MAD 에 1.4826 을 곱하면 0.999490 로 표준편차와 눈금이 맞습니다
# 넷 다 퍼짐을 재지만 이 비율은 정규분포에서만 성립합니다
# 범위는 척도로 쓸 수 없습니다. 표본이 커지면 끝없이 자랍니다
# 표본 크기 범위의 평균 직전 대비 증가
# 10 3.002216 -
# 100 5.041903 2.0397
# 10000 7.722634 2.6807
# 1000000 9.706064 1.9834
# 표본이 10 만 배 늘어도 범위는 3 배쯤만 자랍니다. 그래도 수렴하지는 않습니다
# 꼬리가 두꺼우면 표준편차 자체가 안정되지 않습니다
# 자유도 3 인 t 분포 최솟값 최댓값 최대/최소
# 40 번 시행의 표준편차 1.6161 2.9324 1.8145
# 40 번 시행의 IQR 1.4779 1.5486 1.0478
# 147강에서 본 것과 같습니다. 4 차 적률이 없으면 표본분산이 흔들립니다
# 표본분산의 분모를 n 과 n-1 로 두고 기댓값을 견줍니다. 참 분산은 1 입니다
# 표본 크기 n 1/n 로 나눔 1/(n-1) 로 나눔 (n-1)/n
# 2 0.500835 1.001670 0.500000
# 3 0.667427 1.001140 0.666667
# 5 0.799551 0.999438 0.800000
# 10 0.900503 1.000559 0.900000
# 50 0.980276 1.000282 0.980000
# 1/n 은 언제나 (n-1)/n 배만큼 작게 나옵니다
# 편차를 참 평균이 아니라 표본평균에서 재기 때문입니다
# 문제 1 에서 본 그대로입니다. 표본평균이 제곱합을 최소로 만드는 점입니다
# 참 평균에서 재면 더 큰 값이 나옵니다. 그 손해가 정확히 자유도 하나입니다
# n = 5 에서 참 평균 기준 제곱합 5.004417, 표본평균 기준 4.003842, 비 0.800062
# 그런데 표준편차는 n-1 로 나눠도 여전히 작게 나옵니다
# 표본 크기 n E[s] 수치 이론 c4 1 과의 차이
# 2 0.799794 0.797885 -0.202115
# 3 0.886215 0.886227 -0.113773
# 5 0.938404 0.939986 -0.060014
# 10 0.973268 0.972659 -0.027341
# 50 0.995123 0.994911 -0.005089
# 제곱근이 오목함수라 젠센 부등식으로 E[s] < sigma 입니다
# 분산이 불편이면 그 제곱근은 불편일 수 없습니다. 132강 젠센이 그대로 쓰입니다
# 평균과 분산이 같은데 모양이 전혀 다른 자료 넷을 봅니다
# 자료 x 평균 x 분산 y 평균 y 분산 상관
# 1 9.000 11.000 7.501 4.127 0.816
# 2 9.000 11.000 7.501 4.128 0.816
# 3 9.000 11.000 7.500 4.123 0.816
# 4 9.000 11.000 7.501 4.123 0.817
# 네 자료의 회귀직선도 같습니다
# 자료 1 의 직선 y = 3.000 + 0.500 x
# 자료 2 의 직선 y = 3.001 + 0.500 x
# 자료 3 의 직선 y = 3.002 + 0.500 x
# 자료 4 의 직선 y = 3.002 + 0.500 x
# 그런데 자료 4 는 x 가 2 개 값뿐이고 한 점이 전부를 정합니다
# 그 한 점을 빼면 남은 x 는 모두 8 이라 직선을 그릴 수조차 없습니다
# 요약값이 같다고 자료가 같지 않습니다. 그림을 봐야 하는 이유입니다
# 치우친 분포에서는 평균과 중앙값과 최빈값이 셋 다 다릅니다
# 요약값 수치 이론
# 최빈값 0.377500 0.367879
# 중앙값 1.000049 1.000000
# 평균 1.651526 1.648721
# 왜도 6.188760 6.184877
# 최빈값은 폭 0.005 인 계급을 41 개씩 평활해 찾았습니다. 봉우리가 평평합니다
# 오른쪽으로 치우치면 최빈값 < 중앙값 < 평균 순서가 됩니다
# 평균이 자료가 거의 없는 자리에 놓이기도 합니다
# 봉우리 두 개인 자료의 평균은 -0.0005 입니다
# 평균에서 1 이내에 있는 자료는 2000000 개 중 0 개입니다
# 평균은 자료의 값이 아니라 균형점입니다. 아무도 없는 곳일 수 있습니다
# 양수 자료에서 세 평균의 크기를 견줍니다
# 자료 1, 2, 4, 8, 16
# 평균의 종류 값
# 산술평균 6.200000
# 기하평균 4.000000
# 조화평균 2.580645
# 산술 >= 기하 >= 조화 가 성립하는가: True
# 무작위 20 만 개에서도 1.651689 >= 1.000954 >= 0.607269 입니다
# 등호는 모든 값이 같을 때만 성립합니다. 132강 젠센의 결과입니다
# 같은 거리를 갈 때와 올 때 속도가 다르면 평균 속도는 조화평균입니다
# 120 km 를 시속 60 으로 가고 시속 30 으로 돌아옵니다
# 걸린 시간 2.0 + 4.0 = 6.0 시간, 총 거리 240 km
# 실제 평균 속도는 40.0000 km/h 이며 이 값이 곧 조화평균 40.0000 입니다
# 산술평균 45.0000 로 계산하면 걸린 시간이 5.3333 시간이 되어 틀립니다
# 수익률처럼 곱으로 쌓이는 값은 기하평균을 씁니다
# 한 해에 50 퍼센트 오르고 다음 해에 50 퍼센트 내립니다
# 산술평균으로 재면 수익률이 0.0000 라 본전으로 보입니다
# 실제로는 0.7500 배가 되어 -25.00 퍼센트를 잃었습니다
# 기하평균 수익률 -0.133975 가 실제와 맞습니다
# 무엇을 더하면 뜻이 통하는지가 어느 평균을 쓸지 정합니다
# 시간을 더하면 조화평균, 로그를 더하면 기하평균, 값을 더하면 산술평균입니다