121강 문제 5에서 숙제를 하나 남겼습니다. 에서 균등하게 점을 고를 때
한 점의 확률은 인데 구간의 확률은 양수입니다. 그때는 "확률을 원소가 아니라 사건에 준다"는 말로 넘어갔지만, 그러면 계산은 어떻게 하는가라는 질문이 남았습니다.
답은 확률을 직접 다루지 않는 것입니다.
분자와 분모가 함께 으로 가지만 그 비는 유한한 값으로 수렴합니다. 이 극한을 확률밀도함수라 하며, 확률이 아니라 단위 길이당 확률입니다.
37강의 도함수와 정확히 같은 구조입니다. 그때도 와 가 함께 으로 가는데 비가 살아남았습니다.
| 미적분 | 확률 |
|---|---|
| f'(x)=\lim\dfrac{\Delta y} | f(x)=\lim\dfrac{\Delta P} |
| (기본정리) | |
| 넓이 | 확률 |
이 대응이 이 강의의 전부이며, S3에서 만든 미적분이 통째로 확률의 도구가 됩니다.
문제. 인 지수분포에서 주변의 폭 인 구간을 봅니다.
(1) 를 줄이며 를 계산하세요.
(2) 그 값을 로 나눈 값의 거동을 보세요.
(3) 무엇이 살아남는지 밝히세요.
생각의 실마리. 구간을 좁히면 확률이 으로 갑니다. 그렇다면 얼마나 빨리 가는가를 보면 정보가 남을 것입니다.
풀이. (1)(2) 검산 결과입니다.
| 그 값 | |||
|---|---|---|---|
| 10^ | |||
| 10^ | |||
| 10^ | |||
| 10^ | |||
| 10^ |
(3) 확률은 으로 가는데 확률 나누기 는 로 수렴합니다.
이 문제에서 배우는 것: 확률밀도함수.
확률밀도함수. 연속확률변수 에 대해
이며 단위 길이당 확률입니다.
"밀도"라는 이름이 물리에서 왔습니다. 질량밀도가 단위 부피당 질량이듯, 확률밀도는 단위 길이당 확률입니다. 한 점에는 질량이 없지만 밀도는 있습니다.
구간 확률. 밀도를 적분하면 확률이 나옵니다.
48강의 정적분이 그대로 확률 계산기가 됩니다. 넓이가 확률이며, 전체 넓이가 입니다.
밀도가 만족해야 할 두 조건. 비음성 이고 전체 적분이 이면 됩니다.
이산의 두 조건과 정확히 평행합니다. 합이 적분으로 바뀐 것뿐입니다.
| 이산 | 연속 |
|---|---|
부등호가 인지 인지가 상관없어지는 것도 특징입니다. 한 점의 확률이 이므로
이며 이산에서는 성립하지 않던 등식입니다.
바로 확인 1.
확인 1-1. 확률밀도함수를 극한으로 쓰세요.
답. 입니다.
확인 1-2. 구간 확률을 밀도로 쓰세요.
답. 입니다.
확인 1-3. 연속에서 와 의 관계를 쓰세요.
답. 같습니다. 한 점의 확률이 이기 때문입니다.
문제. 균등분포 의 밀도는 입니다.
(1) 여러 에서 밀도와 전체 적분을 구하세요.
(2) 밀도가 을 넘는 경우를 찾으세요.
(3) 정규분포에서도 확인하세요.
생각의 실마리. 밀도가 확률이면 을 넘을 수 없습니다. 밀도가 확률이 아니라면 넘어도 될 것입니다.
풀이. (1)(2) 검산 결과입니다.
| 밀도 | (전체 구간) | 밀도가 을 넘는가 | |
|---|---|---|---|
| 아닙니다 | |||
| 아닙니다 | |||
| 그렇습니다 | |||
| 그렇습니다 | |||
| 그렇습니다 |
**밀도가 까지 올라가는데 전체 적분은 언제나 정확히 **입니다.
(3) 정규분포 의 최대 밀도는 입니다.
| 최대 밀도 | |
|---|---|
분산이 작아질수록 밀도가 높이 솟습니다. 좁은 구간에 확률이 몰리기 때문입니다.
이 문제에서 배우는 것: 밀도는 확률이 아니다.
핵심 구별. 는 확률이 아니라 밀도이므로 을 넘어도 아무 문제가 없습니다. 제약은 오직 적분값이 이라는 것뿐입니다.
가 확률의 차원입니다. 자체는 확률 나누기 길이라 단위가 있습니다.
| 양 | 단위 |
|---|---|
| 무차원 | |
| 길이 | |
| 무차원 |
이 관찰이 실무의 오해를 막습니다. 밀도 추정 결과에서 를 보고 "확률이 "라 읽으면 안 됩니다. 그리고 단위를 바꾸면 밀도 값이 바뀝니다. 키를 미터에서 센티미터로 바꾸면 밀도가 분의 이 됩니다.
이산과의 결정적 차이가 여기 있습니다.
| 이산 | 연속 | |
|---|---|---|
| 또는 | 확률입니다 | 밀도입니다 |
| 상한 | 입니다 | 없습니다 |
| 단위 변환 | 안 변합니다 | 변합니다 |
| 입니다 | 입니다 |
넷째 줄 때문에 최대가능도추정에서 두 세계가 다르게 보입니다. 이산에서는 가능도가 확률이라 이하지만, 연속에서는 밀도라 얼마든지 클 수 있고 음의 로그가능도가 음수가 될 수 있습니다. 실무에서 손실이 음수로 나와도 버그가 아닐 수 있는 이유입니다.
바로 확인 2.
확인 2-1. 밀도가 을 넘을 수 있습니까?
답. 넘을 수 있습니다. 제약은 적분값이 이라는 것뿐입니다.
확인 2-2. 밀도의 단위를 쓰세요.
답. 길이이며 가 무차원입니다.
확인 2-3. 연속에서 음의 로그가능도가 음수일 수 있습니까?
답. 있습니다. 밀도가 을 넘을 수 있기 때문입니다.
문제. 지수분포에서 와 의 관계를 봅니다.
(1) 를 수치 미분해 와 비교하세요.
(2) 를 수치 적분해 와 비교하세요.
(3) 어느 정리가 이를 보장하는지 밝히세요.
생각의 실마리. 126강에서 였고 문제 1에서 가 그 증가율이었습니다. 증가율과 누적은 미분과 적분의 관계입니다.
풀이. (1)(2) 검산 결과입니다.
| 수치 | 이론 | 차이 | 적분 | ||
|---|---|---|---|---|---|
| 2.44\times10^ | |||||
| 3.32\times10^ | |||||
| 1.64\times10^ | |||||
| 1.53\times10^ |
미분과 적분 양방향 모두 일치합니다. 미분 쪽 오차 은 60강에서 본 수치 미분의 한계이고, 적분 쪽은 소수점 여덟 자리까지 완전히 같습니다.
(3) 49강의 미적분학의 기본정리입니다.
이 문제에서 배우는 것: 와 의 관계.
미분 관계. 가 미분가능한 점에서
적분 관계.
126강에서 가 더 근본적이라고 했는데, 그 이유가 여기서 분명해집니다. 는 언제나 존재하지만 는 가 미분가능할 때만 존재합니다.
| 분포의 종류 | ||
|---|---|---|
| 이산 | 계단함수 | 없습니다 |
| 연속(절대연속) | 미분가능 | 있습니다 |
| 혼합형 | 점프와 매끄러움 | 부분적입니다 |
| 특이형 | 연속인데 미분이 거의 | 없습니다 |
넷째 줄이 126강 심화 3에서 언급한 칸토어 분포입니다. 가 연속이라 한 점의 확률은 인데, 미분하면 거의 모든 곳에서 이라 적분해도 이 나오지 않습니다. "연속이면 밀도가 있다"는 참이 아닙니다.
실무에서 만나는 것은 셋째 줄입니다. 126강 심화 3의 보험 청구액처럼 에 질량이 있고 나머지가 연속인 경우이며, 점질량과 밀도를 따로 다뤄야 합니다.
바로 확인 3.
확인 3-1. 와 의 미분 관계를 쓰세요.
답. 입니다.
확인 3-2. 적분 관계를 쓰세요.
답. 입니다.
확인 3-3. 연속인데 밀도가 없는 분포가 있습니까?
답. 있습니다. 칸토어 분포 같은 특이형입니다.
문제. 에 를 씌웁니다.
(1) 여러 에서 와 를 구하세요.
(2) 를 계산하세요.
(3) 인지 확인하세요.
생각의 실마리. 126강 문제 5에서 이산 변환은 역상의 확률을 더하는 것이었습니다. 연속에서는 확률이 아니라 밀도를 다루므로 길이가 늘어나고 줄어드는 것을 보정해야 합니다.
풀이. (1)(2) 검산 결과입니다.
| 두 값의 곱 | ||||
|---|---|---|---|---|
**다섯 줄 모두 곱이 정확히 **이며, 이것이 균등분포의 밀도입니다.
(3) 분포함수로도 확인됩니다.
| 차이 | ||
|---|---|---|
| 2.78\times10^ | ||
이므로 당연한 결과이며, 126강 심화 4의 역변환 표집이 정확히 이것입니다.
이 문제에서 배우는 것: 연속 변환 공식.
연속 변환 공식. 이고 가 단조 미분가능하면
절댓값이 붙는 것과 인자가 곱해지는 것이 이산과 다른 점입니다.
직관은 길이의 변화입니다. 작은 구간 가 로 옮겨질 때 확률은 보존되어야 합니다.
구간이 늘어나면 밀도가 묽어지고 줄어들면 진해집니다. 검산의 줄이 그 예입니다. 균등분포의 이라는 좁은 구간이 지수분포의 긴 꼬리로 늘어나므로 밀도가 로 묽어집니다.
105강의 변수변환 공식과 같은 식입니다. 그때는 이중적분에서 가 붙었고, 여기서는 일차원이라 입니다. 139강에서 다변수로 확장하면 다시 야코비 행렬식이 됩니다.
| 강의 | 상황 | 인자 |
|---|---|---|
| 105 | 이중적분 변수변환 | |
| 129 | 일변수 확률변수 변환 | |
| 139 | 다변수 확률변수 변환 |
절댓값이 붙는 이유도 105강과 같습니다. 확률과 넓이는 방향과 무관한 양이므로 부호를 버립니다.
바로 확인 4.
확인 4-1. 연속 변환 공식을 쓰세요.
답. 입니다.
확인 4-2. 야코비 인자의 직관을 한 줄로 쓰세요.
답. 구간이 늘어나면 밀도가 묽어지므로 길이 변화율로 보정합니다.
확인 4-3. 절댓값이 붙는 이유를 쓰세요.
답. 확률은 방향과 무관한 양이라 부호를 버립니다.
문제. 세 분포에서 평균, 중앙값, 최빈값을 구합니다.
(1) 지수분포, 표준정규분포, 로그정규분포에서 각각 계산하세요.
(2) 이론값과 비교하세요.
(3) 세 값의 순서에서 무엇을 읽을 수 있는지 쓰세요.
생각의 실마리. 세 값이 모두 "가운데"를 나타내지만 정의가 다릅니다. 평균은 무게중심, 중앙값은 절반 지점, 최빈값은 가장 높은 곳입니다.
풀이. (1)(2) 검산 결과입니다.
| 분포 | 평균 | 중앙값 | 최빈값 |
|---|---|---|---|
| 지수 | |||
| 표준정규 | |||
| 로그정규 |
이론값과 비교하면 지수분포는 평균 , 중앙값 이고, 로그정규분포는 평균 , 중앙값 , 최빈값 입니다.
소수점 넷째 자리까지 맞습니다. 남은 차이는 격자 간격과 적분 구간을 유한하게 자른 데서 오는 수치 오차입니다.
(3) 표준정규는 세 값이 모두 으로 같습니다. 대칭이기 때문입니다. 나머지 둘은 최빈값 중앙값 평균 순서입니다.
이 문제에서 배우는 것: 세 대푯값과 치우침.
세 대푯값.
치우침의 방향이 순서로 드러납니다.
| 모양 | 순서 |
|---|---|
| 대칭 | 셋이 같습니다 |
| 오른쪽 꼬리가 김 | 최빈값 중앙값 평균 |
| 왼쪽 꼬리가 김 | 평균 중앙값 최빈값 |
긴 꼬리가 평균을 끌어당깁니다. 평균은 무게중심이라 멀리 있는 값에 민감하고, 중앙값은 순위만 보므로 둔감합니다.
실무에서 어느 것을 쓸지가 갈립니다.
| 상황 | 적절한 대푯값 | 이유 |
|---|---|---|
| 소득 분포 | 중앙값 | 상위 소득이 평균을 끌어올립니다 |
| 응답 지연 시간 | 중앙값, 분위수 | 꼬리가 두껍습니다 |
| 대칭적 측정오차 | 평균 | 셋이 같고 평균이 효율적입니다 |
| 최빈 범주 | 최빈값 | 범주형에는 평균이 없습니다 |
둘째 줄이 시스템 운영의 상식입니다. 평균 응답시간이 좋아도 가 나쁘면 사용자 경험이 나쁘며, 126강 심화 5의 분위수가 필요한 이유입니다.
로그정규분포가 특히 좋은 예입니다. 로그를 취하면 정규가 되는 분포이며, 곱셈적으로 쌓이는 양에 나타납니다. 소득, 도시 인구, 파일 크기, 응답 시간이 대체로 이 모양이며, 143강의 중심극한정리를 곱셈에 적용한 결과입니다.
바로 확인 5.
확인 5-1. 세 대푯값의 정의를 각각 쓰세요.
답. 평균은 , 중앙값은 , 최빈값은 의 최대점입니다.
확인 5-2. 오른쪽으로 치우친 분포에서 셋의 순서를 쓰세요.
답. 최빈값 중앙값 평균입니다.
확인 5-3. 응답 지연 시간에 평균보다 중앙값이 나은 이유를 쓰세요.
답. 꼬리가 두꺼워 평균이 소수의 큰 값에 끌려가기 때문입니다.
| 개념 | 식 |
|---|---|
| 밀도의 정의 | |
| 구간 확률 | |
| 정규화 | |
| 미분 관계 | |
| 적분 관계 | |
| 변환 | |
| 평균 | |
| 중앙값 |
| 이산 대 연속 | 이산 | 연속 |
|---|---|---|
| 기본량 | 확률질량 | 밀도 |
| 상한 | 없습니다 | |
| 총합 | ||
| 변환 | 역상의 합 | 야코비 인자 |
| 치우침 | 순서 |
|---|---|
| 대칭 | 셋이 같습니다 |
| 오른쪽 꼬리 | 최빈 중앙 평균 |
| 왼쪽 꼬리 | 평균 중앙 최빈 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 밀도를 확률로 읽습니다 | 가 확률입니다 |
| 밀도가 을 넘으면 틀렸다고 봅니다 | 적분만 이면 됩니다 |
| 변환에서 야코비를 빠뜨립니다 | 길이 변화율을 곱합니다 |
| 치우친 자료에 평균을 씁니다 | 중앙값이나 분위수를 씁니다 |
문제 6. 확률밀도함수를 극한으로 쓰세요.
답. 입니다.
문제 7. 밀도가 만족해야 할 두 조건을 쓰세요.
답. 비음성이고 전체 적분이 입니다.
문제 8. 구간 확률을 밀도로 쓰세요.
답. 입니다.
문제 9. 연속에서 와 의 관계를 쓰세요.
답. 같습니다. 한 점의 확률이 이기 때문입니다.
문제 10. 밀도가 을 넘을 수 있는지와 그 이유를 쓰세요.
답. 넘을 수 있으며 밀도가 확률이 아니라 단위 길이당 확률이기 때문입니다.
문제 11. 밀도의 단위를 쓰세요.
답. 길이이며 가 무차원입니다.
문제 12. 와 의 두 관계를 쓰세요.
답. 이고 입니다.
문제 13. 어느 정리가 그 둘을 잇는지 쓰세요.
답. 49강의 미적분학의 기본정리입니다.
문제 14. 연속인데 밀도가 없는 분포의 예를 쓰세요.
답. 칸토어 분포 같은 특이형입니다.
문제 15. 연속 변환 공식을 쓰세요.
답. 입니다.
문제 16. 야코비 인자의 직관과 절댓값의 이유를 쓰세요.
답. 길이 변화로 밀도가 묽어지거나 진해지며, 확률은 방향과 무관해 부호를 버립니다.
문제 17. 세 대푯값의 정의를 쓰세요.
답. 평균은 , 중앙값은 , 최빈값은 의 최대점입니다.
문제 18. 오른쪽으로 치우친 분포에서 세 값의 순서를 쓰세요.
답. 최빈값 중앙값 평균입니다.
심화 1. 이산과 연속을 하나의 틀로 묶는 방법을 개관하세요.
두 세계를 매번 따로 쓰는 것은 번거롭습니다. 하나로 묶는 방법이 두 가지 있습니다.
첫째는 스틸체스 적분입니다. 분포함수 에 대해 적분을 정의합니다.
가 계단이면 점프에서 합이 되고, 미분가능하면 가 되어 두 경우를 한 식으로 씁니다. 혼합형도 자연스럽게 처리됩니다.
둘째는 측도론의 밀도입니다. 기준측도 에 대한 라돈니코딤 도함수로 밀도를 정의합니다.
| 기준측도 | 밀도의 정체 |
|---|---|
| 르베그 측도 | 보통의 확률밀도함수 |
| 셈측도 | 확률질량함수 |
| 혼합 | 점질량과 밀도가 함께 |
둘째 줄이 중요합니다. 셈측도를 쓰면 확률질량함수도 밀도이며, 이 관점에서 이산과 연속의 구별이 사라집니다.
실무에서 이 통합이 유용한 자리가 있습니다. 변분추론과 확산모형에서 이산 잠재변수와 연속 잠재변수를 같은 코드로 다루려면 이 추상화가 필요합니다.
심화 2. 밀도가 무한대로 발산해도 되는지 보세요.
문제 2에서 밀도가 을 넘어도 된다고 했습니다. 더 나아가 무한대로 발산해도 됩니다.
이 밀도는 에서 무한대로 가지만
로 적분이 유한합니다. 53강의 이상적분이 수렴하기 때문입니다.
이 분포는 의 분포입니다. 일 때 의 밀도를 문제 4의 공식으로 구하면
입니다. 제곱이 근처를 압축하므로 밀도가 그만큼 진해집니다.
베타분포에서 흔히 나타납니다. 는 이면 에서, 이면 에서 발산합니다. 는 양끝에서 모두 발산하며, 제프리스 사전분포로 쓰입니다.
최대가능도추정에서 이것이 문제를 일으킬 수 있습니다. 가능도가 무한대로 발산하는 지점이 있으면 최대점이 의미를 잃으며, 혼합 정규분포에서 한 성분의 분산을 으로 보내면 실제로 이런 일이 생깁니다.
심화 3. 단조가 아닌 변환을 다루세요.
문제 4의 공식은 가 단조일 때만 씁니다. 단조가 아니면 조각으로 나눕니다.
이고 가 실수 전체에서 값을 가지면, 각 에 대해 두 개가 대응합니다. 126강 문제 5에서 이산 다대일 변환은 확률을 더했는데, 연속에서도 더합니다.
표준정규에 적용하면 카이제곱분포가 나옵니다. 가 짝함수이므로
이것이 자유도 인 카이제곱분포이며 145강에서 다룹니다. 표본분산의 분포가 여기서 나옵니다.
심화 2의 발산이 여기서도 보입니다. 에서 때문에 밀도가 발산하지만 적분은 유한합니다.
일반 규칙이 이것입니다. 역상이 여러 개면 각각에 야코비 인자를 곱해 모두 더합니다. 139강의 다변수 버전에서도 같습니다.
심화 4. 생존함수와 위험률을 정의하세요.
의 여집합에 고유한 이름이 있습니다.
생존함수. 이며 " 시점까지 살아남을 확률"입니다.
위험률. 이며 "까지 살아남았다는 조건에서 지금 당장 실패할 순간 확률"입니다.
위험률이 조건부 밀도입니다. 실제로
이며 문제 1의 정의에 조건을 하나 얹은 것입니다.
128강의 무기억성이 위험률로 다시 읽힙니다.
| 위험률 | 뜻 | 분포 |
|---|---|---|
| 상수 | 나이와 무관합니다 | 지수분포 |
| 증가 | 늙을수록 위험합니다 | 와이불 |
| 감소 | 초기 결함이 걸러집니다 | 와이불 |
| 욕조 곡선 | 초기와 말기에 높습니다 | 실제 부품 |
지수분포의 위험률이 정확히 로 상수입니다.
**무기억성의 정체가 "위험률이 상수"**이며, 128강 문제 5의 함수방정식과 같은 말입니다.
생존분석의 핵심 도구가 이것입니다. 중도 절단된 관측이 있어도 위험률은 추정할 수 있으며, 콕스 비례위험모형이 로 모형화합니다. 기저 위험률을 추정하지 않고도 계수를 얻는 것이 그 모형의 강점입니다.
심화 5. 밀도를 데이터에서 추정하는 방법을 개관하세요.
이론 분포가 아니라 데이터에서 밀도를 얻어야 할 때가 많습니다.
히스토그램이 가장 단순합니다. 구간을 나누고 빈도를 폭으로 나눕니다. 문제 1의 정의를 그대로 구현한 것이며, 폭 가 하이퍼파라미터입니다.
| 가 작으면 | 가 크면 |
|---|---|
| 분산이 큽니다 | 편향이 큽니다 |
| 울퉁불퉁합니다 | 뭉개집니다 |
편향-분산 절충이 여기서도 나타나며 210강의 주제입니다.
커널 밀도추정이 개선판입니다.
각 관측점에 작은 봉우리를 얹어 더하는 것이며, 히스토그램의 계단을 매끄럽게 만듭니다. 커널 의 모양보다 대역폭 의 선택이 훨씬 중요합니다.
차원의 저주가 심각합니다. 차원에서 같은 정확도를 얻으려면 표본이 지수적으로 필요하며, 그래서 고차원에서는 밀도추정 대신 다른 접근을 씁니다.
| 접근 | 아이디어 |
|---|---|
| 모수적 모형 | 분포족을 가정하고 모수만 추정합니다 |
| 정규화 흐름 | 단순 분포를 가역 변환으로 옮깁니다 |
| 확산모형 | 점수함수 만 학습합니다 |
둘째 줄이 이 강의의 직접적 확장입니다. 정규화 흐름은 문제 4의 변환 공식을 신경망으로 학습하며, 야코비 행렬식을 계산할 수 있게 구조를 설계하는 것이 핵심 과제입니다.
셋째 줄은 밀도 자체를 포기합니다. 의 기울기만 알아도 표본을 뽑을 수 있으므로 정규화 상수를 몰라도 되며, 266강에서 다룹니다.
심화 6. 연속분포에서 엔트로피가 달라지는 점을 보세요.
이산에서 엔트로피는 다음과 같았습니다.
연속에서 합을 적분으로 바꾸면 미분 엔트로피가 됩니다.
그런데 성질이 달라집니다.
| 성질 | 이산 엔트로피 | 미분 엔트로피 |
|---|---|---|
| 부호 | 언제나 | 음수일 수 있습니다 |
| 단위 변환 | 불변입니다 | 변합니다 |
| 최솟값 | (결정적) | 하한이 없습니다 |
균등분포 로 확인합니다. 밀도가 이므로
이고 이면 음수입니다. 문제 2의 표에서 이면 입니다.
이유는 밀도가 확률이 아니기 때문입니다. 가 양수가 될 수 있으므로 부호가 보장되지 않습니다.
그래서 실무에서는 상대 엔트로피를 씁니다. 두 밀도의 비를 보면 단위가 약분되어 사라집니다.
이쪽은 언제나 비음이고 단위에 불변입니다. 203강에서 다루며, 262강의 ELBO와 266강의 확산모형 손실이 모두 이 형태입니다. 미분 엔트로피가 아니라 KL이 기계학습의 기본 통화인 이유가 이것입니다.
import numpy as np, math
# --- 문제 1: 한 점은 0 인데 구간은 양수다 -------------------------------
lam = 1.5
F = lambda t: 1 - np.exp(-lam*t) # 지수분포 lam=1.5
f = lambda t: lam*np.exp(-lam*t)
print(" 지수분포 lam = %.1f. a = 1.0 주변의 폭 h 구간을 봅니다" % lam)
print(" h P(a < X <= a+h) 그 값 / h f(a)")
for h in [1e-1, 1e-2, 1e-4, 1e-6, 1e-8]:
p = F(1.0+h) - F(1.0)
print(" %9.0e %18.12f %14.8f %12.8f" % (h, p, p/h, f(1.0)))
print(" h 를 0 으로 보내면 확률은 0 이지만 확률/h 는 f(a) = %.8f 로 수렴합니다" % f(1.0))
print(" 이것이 밀도의 정의입니다. 밀도는 확률이 아니라 단위 길이당 확률입니다")
# 지수분포 lam = 1.5. a = 1.0 주변의 폭 h 구간을 봅니다
# h P(a < X <= a+h) 그 값 / h f(a)
# 1e-01 0.031080251528 0.31080252 0.33469524
# 1e-02 0.003321975301 0.33219753 0.33469524
# 1e-04 0.000033467014 0.33467014 0.33469524
# 1e-06 0.000000334695 0.33469499 0.33469524
# 1e-08 0.000000003347 0.33469524 0.33469524
# h 를 0 으로 보내면 확률은 0 이지만 확률/h 는 f(a) = 0.33469524 로 수렴합니다
# 이것이 밀도의 정의입니다. 밀도는 확률이 아니라 단위 길이당 확률입니다
# --- 문제 2: 밀도는 1 을 넘을 수 있다 -----------------------------------
print(" 균등분포 U(0, b) 의 밀도는 1/b 입니다")
print(" b 밀도 1/b P(전체 구간) 최대 밀도가 1 을 넘는가")
for b in [10.0, 1.0, 0.5, 0.1, 0.01]:
print(" %9.2f %11.4f %14.10f %20s" % (b, 1/b, (1/b)*b, 1/b > 1))
print(" 밀도는 확률이 아니므로 1 을 넘어도 됩니다. 적분값이 1 이면 충분합니다")
print(" 정규분포 N(0, s^2) 의 최대 밀도 1/(s sqrt(2pi)) 도 s 가 작으면 커집니다")
print(" s 최대 밀도")
for s in [1.0, 0.5, 0.1, 0.01]:
print(" %9.2f %14.6f" % (s, 1/(s*np.sqrt(2*np.pi))))
# 균등분포 U(0, b) 의 밀도는 1/b 입니다
# b 밀도 1/b P(전체 구간) 최대 밀도가 1 을 넘는가
# 10.00 0.1000 1.0000000000 False
# 1.00 1.0000 1.0000000000 False
# 0.50 2.0000 1.0000000000 True
# 0.10 10.0000 1.0000000000 True
# 0.01 100.0000 1.0000000000 True
# 밀도는 확률이 아니므로 1 을 넘어도 됩니다. 적분값이 1 이면 충분합니다
# 정규분포 N(0, s^2) 의 최대 밀도 1/(s sqrt(2pi)) 도 s 가 작으면 커집니다
# s 최대 밀도
# 1.00 0.398942
# 0.50 0.797885
# 0.10 3.989423
# 0.01 39.894228
# --- 문제 3: 미분하면 밀도, 적분하면 분포함수 ---------------------------
print(" F 를 수치 미분해 f 와 비교하고, f 를 수치 적분해 F 와 비교합니다")
print(" x F'(x) 수치 f(x) 이론 차이 적분(0~x) F(x)")
for x in [0.5, 1.0, 2.0, 4.0]:
h = 1e-6
d = (F(x+h) - F(x-h))/(2*h)
M = 400000
grid = (np.arange(M) + 0.5)*(x/M)
integ = float(f(grid).sum()*(x/M))
print(" %9.1f %13.8f %13.8f %10.2e %13.8f %11.8f"
% (x, d, f(x), abs(d - f(x)), integ, F(x)))
print(" 49강 미적분학의 기본정리가 확률에서 F 와 f 를 잇습니다")
# F 를 수치 미분해 f 와 비교하고, f 를 수치 적분해 F 와 비교합니다
# x F'(x) 수치 f(x) 이론 차이 적분(0~x) F(x)
# 0.5 0.70854983 0.70854983 2.44e-11 0.52763345 0.52763345
# 1.0 0.33469524 0.33469524 3.32e-11 0.77686984 0.77686984
# 2.0 0.07468060 0.07468060 1.64e-11 0.95021293 0.95021293
# 4.0 0.00371813 0.00371813 1.53e-11 0.99752125 0.99752125
# 49강 미적분학의 기본정리가 확률에서 F 와 f 를 잇습니다
# --- 문제 4: 변환에는 야코비 인자가 붙는다 ------------------------------
print(" U ~ Uniform(0,1) 에 g(u) = -log(1-u)/lam 을 씌우면 지수분포가 됩니다")
print(" u x = g(u) f_X(x) 1/|g'(u)| 두 값의 곱")
g = lambda u: -np.log(1-u)/lam
gp = lambda u: 1/(lam*(1-u)) # g'(u)
for u in [0.1, 0.3, 0.5, 0.9, 0.99]:
x = g(u)
print(" %9.2f %12.8f %12.8f %13.8f %14.10f"
% (u, x, f(x), 1/gp(u), f(x)*gp(u)))
print(" f_X(x) * g'(u) = 1 이며 균등분포의 밀도 1 이 그대로 나옵니다")
print(" 분포함수로 확인합니다. F(g(u)) = u 여야 합니다")
print(" u F(g(u)) 차이")
for u in [0.1, 0.5, 0.9, 0.99]:
print(" %9.2f %14.10f %12.2e" % (u, F(g(u)), abs(F(g(u)) - u)))
# U ~ Uniform(0,1) 에 g(u) = -log(1-u)/lam 을 씌우면 지수분포가 됩니다
# u x = g(u) f_X(x) 1/|g'(u)| 두 값의 곱
# 0.10 0.07024034 1.35000000 1.35000000 1.0000000000
# 0.30 0.23778330 1.05000000 1.05000000 1.0000000000
# 0.50 0.46209812 0.75000000 0.75000000 1.0000000000
# 0.90 1.53505673 0.15000000 0.15000000 1.0000000000
# 0.99 3.07011346 0.01500000 0.01500000 1.0000000000
# f_X(x) * g'(u) = 1 이며 균등분포의 밀도 1 이 그대로 나옵니다
# 분포함수로 확인합니다. F(g(u)) = u 여야 합니다
# u F(g(u)) 차이
# 0.10 0.1000000000 2.78e-17
# 0.50 0.5000000000 0.00e+00
# 0.90 0.9000000000 0.00e+00
# 0.99 0.9900000000 0.00e+00
# --- 문제 5: 평균, 중앙값, 최빈값은 다 다르다 ---------------------------
print(" 치우친 분포에서 세 대푯값을 비교합니다")
def stats(name, dens, lo, hi, mode, M=2000000):
xs = lo + (np.arange(M) + 0.5)*(hi-lo)/M
w = dens(xs)*(hi-lo)/M
tot = w.sum(); m = float(xs @ w)/tot
c = np.cumsum(w)/tot
med = float(xs[np.searchsorted(c, 0.5)])
return name, m, med, mode
print(" 분포 평균 중앙값 최빈값")
rows = [stats("지수 lam=1.5", f, 0.0, 60.0, 0.0),
stats("표준정규", lambda t: np.exp(-t*t/2)/np.sqrt(2*np.pi), -12.0, 12.0, 0.0),
stats("로그정규", lambda t: np.exp(-(np.log(np.maximum(t,1e-300)))**2/2)/(np.maximum(t,1e-300)*np.sqrt(2*np.pi)), 1e-9, 200.0, np.exp(-1.0))]
for nm, m, med, mode in rows:
print(" %-16s %12.6f %12.6f %12.6f" % (nm, m, med, mode))
print(" 지수분포 이론값: 평균 %.6f, 중앙값 %.6f, 최빈값 0" % (1/lam, np.log(2)/lam))
print(" 로그정규 이론값: 평균 %.6f, 중앙값 %.6f, 최빈값 %.6f"
% (np.exp(0.5), 1.0, np.exp(-1.0)))
print(" 오른쪽으로 치우치면 최빈값 < 중앙값 < 평균 순서가 됩니다")
# 치우친 분포에서 세 대푯값을 비교합니다
# 분포 평균 중앙값 최빈값
# 지수 lam=1.5 0.666667 0.462105 0.000000
# 표준정규 0.000000 -0.000006 0.000000
# 로그정규 1.648707 0.999950 0.367879
# 지수분포 이론값: 평균 0.666667, 중앙값 0.462098, 최빈값 0
# 로그정규 이론값: 평균 1.648721, 중앙값 1.000000, 최빈값 0.367879
# 오른쪽으로 치우치면 최빈값 < 중앙값 < 평균 순서가 됩니다
문제 1의 표가 121강 문제 5의 숙제에 대한 답입니다. 왼쪽 열은 으로 가는데 가운데 열은 로 수렴합니다. 사라지는 것과 남는 것을 나누는 것이 밀도의 정의이며, 37강에서 도함수를 정의할 때 한 일과 똑같습니다.
문제 4의 마지막 열이 이 강의에서 가장 깔끔한 확인입니다. 가 다섯 줄 모두 정확히 이며, 이는 변환 뒤에도 확률이 보존된다는 뜻입니다. 밀도는 에서 까지 배 변하는데 야코비 인자가 정확히 그만큼 역으로 변해 상쇄합니다.
문제 5의 로그정규 줄에서 평균이 중앙값의 배입니다. 소수의 큰 값이 평균을 끌어올린 것이며, 수치값과 이론값의 소수점 다섯째 자리 차이는 적분 구간을 에서 자른 대가입니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| 확률밀도함수 | 단위 길이당 확률입니다 | |
| 확률 요소 | 무차원인 확률입니다 | |
| 절대연속 | absolutely continuous | 밀도가 존재하는 경우입니다 |
| 특이형 | singular | 연속인데 밀도가 없습니다 |
| 야코비 인자 | Jacobian factor | 길이 변화율 보정입니다 |
| 생존함수 | 입니다 | |
| 위험률 | 입니다 | |
| 스틸체스 적분 | Stieltjes integral | 이산과 연속을 한 식으로 씁니다 |
| 커널 밀도추정 | KDE | 관측점마다 봉우리를 얹습니다 |
| 미분 엔트로피 | differential entropy | 음수일 수 있습니다 |
| 로그정규 | lognormal | 로그를 취하면 정규입니다 |
| 정규화 흐름 | normalizing flow | 변환 공식을 학습합니다 |
다음 130강에서는 정규분포를 다룹니다. 이 강의에서 세운 밀도의 언어로 가장 중요한 분포를 봅니다. 종 모양의 밀도가 왜 그 꼴인지, 정규화 상수 가 어디서 오는지를 104강의 극좌표 변환으로 유도합니다. 127강 문제 5에서 이항의 극한으로 슬쩍 등장했던 분포가 여기서 정면으로 다뤄지며, 143강 중심극한정리의 주인공이 됩니다.