178강부터 182강까지가 자료를 받은 뒤의 이야기였습니다. 이 강의는 자료를 모으기 전의 이야기입니다.
178강 문제 5에서 유의하지 않은 결과가 효과가 작다는 뜻일 수도 못 쟀다는 뜻일 수도 있다고 했습니다. 둘을 가르려면 얼마나 잴 힘이 있었는지를 알아야 하고, 그것은 자료를 보기 전에 계산됩니다.
| 무엇 | 뜻 |
|---|---|
| 유의수준 | 없는 효과를 있다고 할 확률 |
| 검출력 | 있는 효과를 찾아낼 확률 |
| 효과 크기 | 표준편차 단위의 차이 |
| 표본 크기 | 집단당 몇 개를 모으는가 |
넷이 하나의 식으로 묶여 있어 셋을 정하면 넷째가 정해집니다. 설계란 이 넷을 맞추는 일이며, 어느 셋을 정할지가 판단입니다.
그리고 검출력이 낮은 연구는 못 찾는 것만 문제가 아닙니다. 문제 3에서 찾아낸 효과가 부풀어 있고 부호까지 틀릴 수 있다는 것을 계산합니다.
문제. 검출력을 정의합니다.
(1) 두 종류의 오류를 정리하세요.
(2) 검출력 공식을 세우고 모의와 맞추세요.
생각의 실마리. 152강에서 두 종류의 오류를 봤습니다. 하나를 줄이면 다른 하나가 늘어나며, 그 맞바꿈을 표본 크기가 완화합니다.
풀이. (1) 네 칸으로 정리합니다.
| 참으로 효과가 있음 | 참으로 효과가 없음 | |
|---|---|---|
| 기각함 | 옳은 판단 | 종 오류 (알파) |
| 기각 못 함 | 종 오류 (베타) | 옳은 판단 |
관례적 목표는 입니다. 이면 있는 효과를 다섯 번에 한 번은 놓친다는 뜻이며, 생각보다 관대한 기준입니다.
(2) 공식을 세웁니다. 귀무가설 아래에서 가 표준정규인데, 효과가 있으면 중심이 밀립니다.
| 효과 크기 | 집단당 크기 | 밀리는 양 | 공식 | 모의 |
|---|---|---|---|---|
공식과 모의가 소수 둘째 자리까지 맞습니다.
밀리는 양이 전부를 정합니다. 셋째 줄과 넷째 줄을 보면 가 과 로 비슷하고 검출력도 과 로 비슷한데, 효과 크기와 표본 크기는 크게 다릅니다. 가 같으면 같은 검출력입니다.
분산을 안다고 두고 를 썼습니다. 로 하면 자유도가 유한해 조금 낮아집니다.
이 문제에서 배우는 것. 검출력이 효과 크기와 표본 크기의 두 축이 아니라 그 곱 하나로 결정됩니다. 그래서 "표본이 작아서 못 찾았다"와 "효과가 작아서 못 찾았다"가 구별되지 않으며, 이것이 178강 문제 5의 애매함의 뿌리입니다. 설계 단계에서 할 수 있는 일은 효과 크기를 가정하고 그 가정 아래 표본을 정하는 것뿐인데, 그 가정이 틀리면 계산 전체가 틀립니다. 그래서 문제 3에서 가정의 출처를 따집니다.
바로 확인 1.
확인 1-1. 검출력을 베타로 쓰세요.
답. 이며 있는 효과를 찾아낼 확률입니다.
확인 1-2. 밀리는 양을 식으로 쓰세요.
답. 효과 크기에 를 곱한 값입니다.
확인 1-3. 검산에서 , 의 공식값과 모의값을 쓰세요.
답. 와 입니다.
문제. 표본 크기를 계산합니다.
(1) 검출력 에 필요한 크기를 구하세요.
(2) 목표 검출력을 올릴 때의 비용을 재세요.
(3) 검출력 표를 만드세요.
생각의 실마리. 문제 1의 식을 에 대해 풀면 됩니다. 밀리는 양이 가 되면 목표 검출력에 닿습니다.
풀이. (1) 식을 뒤집습니다.
이고 이며 둘의 합의 제곱은 입니다.
| 효과 크기 | 공식값 | 정확히 푼 값 | 실제 검출력 |
|---|---|---|---|
효과가 절반이면 표본이 네 배 듭니다. 의 제곱에 반비례하며, 174강의 이 여기서 뒤집힌 모습입니다.
효과 크기 를 잡으려면 집단당 명이 필요합니다. 실무의 개선이 대개 이 크기라, 작은 실험으로는 원래부터 못 찾습니다.
(2) 목표 검출력을 올려 봅니다. 로 고정합니다.
| 목표 검출력 | z_ | 일 때 | 대비 |
|---|---|---|---|
에서 로 올리려면 표본이 배 듭니다.
검출력 는 동전 던지기와 같습니다. 이라 관측된 효과가 참값과 같아야 겨우 문턱에 닿는다는 뜻이며, 그런 연구는 안 하느니만 못합니다.
(3) 두 축을 다 바꿔 표를 만듭니다.
| 집단당 크기 | ||||
|---|---|---|---|---|
왼쪽 위가 위험 지대입니다. 작은 효과를 작은 표본으로 찾으려는 자리이며, 에 면 검출력이 로 유의수준보다 조금 높을 뿐입니다.
오른쪽 아래는 낭비입니다. 이미 확실한 것에 표본을 더 쓰고 있습니다.
이 문제에서 배우는 것. 표본 크기 계산은 실험을 할지 말지를 정하는 도구입니다. 를 잡으려면 명이 필요한데 명밖에 못 모은다면, 그 실험은 하기 전에 이미 실패입니다. 그때 할 일은 실험을 강행하는 것이 아니라 효과를 키우거나(더 센 처치), 분산을 줄이거나(178강 문제 3의 짝짓기, 176강의 측정 품질), 물음을 바꾸는 것입니다. 178강 문제 3에서 짝짓기가 검출력을 에서 로 바꾼 것이 그 예이며, 설계로 얻는 것이 표본으로 사는 것보다 쌉니다.
바로 확인 2.
확인 2-1. 표본 크기 공식을 쓰세요.
답. 입니다.
확인 2-2. 검산에서 와 에 필요한 크기를 쓰세요.
답. 과 입니다.
확인 2-3. 검산에서 검출력을 에서 로 올릴 때의 배수를 쓰세요.
답. 배입니다.
문제. 낮은 검출력의 대가를 잽니다.
(1) 유의하게 나온 것만 모아 효과 크기를 보세요.
(2) 재현 실패와 어떻게 이어지는지 정리하세요.
생각의 실마리. 검출력이 낮으면 못 찾는 것이 문제라고 생각하기 쉽습니다. 찾은 것도 문제입니다.
풀이. (1) 효과 크기가 정말 인 자료에서 유의하게 나온 것만 모읍니다.
| 집단당 크기 | 검출력 | 유의한 것의 평균 효과 | 참값 대비 | 부호가 뒤집힐 비율 |
|---|---|---|---|---|
검출력이 일 때 찾아낸 효과가 참값의 배입니다.
작은 표본에서는 우연히 큰 차이가 나야만 문턱을 넘기 때문입니다. 참값이 인데 문턱을 넘으려면 관측값이 쯤 되어야 하고, 그런 표본만 골라 보게 됩니다.
177강 문제 2의 절단이 여기서 그대로 일어납니다. 가 큰 것만 남기면 기울기가 망가진다고 했는데, 유의성 문턱이 바로 그 절단입니다.
마지막 열은 부호까지 틀릴 확률입니다. 이면 유의하게 나온 것 중 퍼센트가 반대 방향이며, 참 효과가 양수인데 음수로 보고됩니다.
(2) 그래서 재현이 안 됩니다.
| 무슨 일이 일어나는가 | 결과 |
|---|---|
| 작은 표본으로 큰 효과를 보고 | 부풀린 값이 실립니다 |
| 다른 팀이 그 값으로 설계 | 표본을 너무 적게 잡습니다 |
| 재현 시도가 실패 | 원래 효과가 없다고 결론 |
| 사실은 작은 효과가 있었음 | 아무도 모릅니다 |
둘째 줄이 고리를 만듭니다. 앞 논문의 로 설계하면 면 충분하다고 나오는데, 참 효과가 이니 실제 검출력은 도 안 됩니다.
앞 논문의 효과 크기로 설계하면 안 되는 이유가 이것입니다. 발표된 효과 크기는 이미 문턱을 통과한 것들의 평균이라 부풀어 있습니다.
실무에서 의미 있는 최소 효과를 따로 정해야 합니다. "얼마나 좋아져야 도입할 가치가 있는가"는 비용과 도메인이 정하는 값이며, 자료에서 오지 않습니다.
이 문제에서 배우는 것. 검출력이 낮은 연구는 결과가 어느 쪽으로 나오든 쓸모가 없습니다. 유의하지 않으면 아무것도 못 배우고, 유의하면 부풀린 값을 배웁니다. 그래서 검출력 계산이 연구 윤리의 문제로도 다뤄지는데, 검출력 인 임상시험은 참가자를 위험에 노출시키면서 답을 못 얻기 때문입니다. 그리고 이 문제는 182강의 다중비교와 곱해집니다. 검출력이 낮은 검정을 여러 번 하면 유의한 것은 거의 다 가짜이거나 부풀려진 것입니다.
바로 확인 3.
확인 3-1. 승자의 저주가 무엇인지 쓰세요.
답. 유의성 문턱이 효과 크기를 선택해 부풀리는 현상입니다.
확인 3-2. 검산에서 집단당 일 때의 검출력과 참값 대비 배수를 쓰세요.
답. 이고 배입니다.
확인 3-3. 앞 논문의 효과 크기로 설계하면 안 되는 이유를 쓰세요.
답. 발표된 값이 문턱을 통과한 것들의 평균이라 부풀어 있기 때문입니다.
문제. 표본 크기에 영향을 주는 다른 결정을 봅니다.
(1) 다중비교 보정을 표본 크기로 번역하세요.
(2) 배분 비율의 영향을 재세요.
(3) 비율 비교의 표본 크기를 구하세요.
생각의 실마리. 182강에서 보정하면 기준이 엄격해졌습니다. 그만큼 표본이 더 든다는 뜻인데, 얼마나 더 드는지 계산합니다.
풀이. (1) 보정한 유의수준으로 표본을 구합니다.
| 검정 수 | 보정한 유의수준 | 기준값 | 일 때 | 한 개 대비 |
|---|---|---|---|---|
검정이 백 배로 늘어도 표본은 배면 됩니다.
가 로그처럼 천천히 자라기 때문입니다. 182강에서 본페로니 기준이 아주 작아 보였는데, 표본 크기로 번역하면 값이 생각보다 쌉니다.
(2) 총 표본을 어떻게 나눌지도 검출력을 바꿉니다. 전체 명을 두 집단에 나눕니다.
| 배분 | 각 크기 | 유효 집단 크기 | 검출력 |
|---|---|---|---|
| 대 | |||
| 대 | |||
| 대 | |||
| 대 | |||
| 대 |
유효 크기가 조화평균이라 한쪽이 작으면 크게 손해입니다. 조화평균은 작은 쪽에 끌려가므로, 과 의 조화평균이 입니다.
유효 집단 크기가 이면 전체가 명 값입니다. 명 중 명을 버린 셈이며, 반반이 가장 좋습니다.
(3) 비율을 비교할 때를 봅니다.
| 기저 비율 | 절대 차이 | 상대 변화 | 필요한 | 기대 사건 수 |
|---|---|---|---|---|
앞의 세 줄은 절대 차이가 같은데 기저 비율이 낮을수록 이 줄어듭니다. 분산 가 에서 최대라, 낮은 비율에서는 흩어짐이 작기 때문입니다.
그런데 기저가 인데 절대 차이 라는 것은 두 배가 된다는 뜻입니다. 실무에서 그런 개선은 드뭅니다.
상대 변화를 고정하면 이야기가 뒤집힙니다. 마지막 줄은 퍼센트 개선인데 집단당 명이 필요하며, 첫 줄의 퍼센트 개선이 명인 것과 대비됩니다.
전환율 퍼센트의 A/B가 어려운 이유가 이것입니다. 181강 심화 4와 같은 결론이며, 기대 사건 수를 보면 어느 줄이든 수백 개는 필요합니다.
이 문제에서 배우는 것. 설계의 결정 하나하나가 표본 크기로 번역됩니다. 보정할지, 어떻게 배분할지, 어떤 지표를 볼지가 전부 을 바꾸며, 그 계산을 자료를 모으기 전에 해야 합니다. 그리고 (2)의 배분 문제가 실무에서 자주 나오는데, "새 기능은 위험하니 퍼센트에만 노출하자"는 결정이 표본의 퍼센트를 버리는 결정이라는 것을 아는 사람이 적습니다. 위험 관리와 검출력 사이의 맞바꿈이며, 어느 쪽을 택하든 그 대가를 계산해 두고 택해야 합니다.
바로 확인 4.
확인 4-1. 검산에서 검정 개를 보정할 때의 표본 배수를 쓰세요.
답. 배이며 가 로그처럼 자라기 때문입니다.
확인 4-2. 유효 집단 크기를 식으로 쓰고 무엇의 평균인지 쓰세요.
답. 두 집단 크기의 조화평균이며 작은 쪽에 끌려갑니다.
확인 4-3. 검산에서 기저 을 퍼센트 개선하는 데 필요한 을 쓰세요.
답. 입니다.
문제. 사후 검정력을 검사합니다.
(1) 관측된 효과로 계산한 검출력이 무엇의 함수인지 확인하세요.
(2) 무엇을 대신 보고할지 정하세요.
(3) 설계 단계에서 정할 것을 정리하세요.
생각의 실마리. "유의하지 않았는데 검출력이 얼마였나"라는 물음이 자연스러워 보입니다. 관측된 효과 크기를 넣으면 계산은 됩니다.
풀이. (1) 효과가 정말 인 자료에서 관측된 로 사후 검출력을 계산합니다.
| $\lvert z\rvert $의 구간 | 관측된 의 평균 | 사후 검출력의 평균 |
|---|---|---|
| ~ | ||
| ~ | ||
| ~ | ||
| ~ |
사후 검출력이 를 따라 단조로 오릅니다.
의 함수일 뿐이라 새 정보가 하나도 없습니다. 값을 알면 사후 검출력도 알고, 그 반대도 됩니다.
"유의하지 않았으니 검출력이 낮았다"는 말은 동어반복입니다. 유의하지 않다는 것이 가 작다는 뜻이고, 그것이 곧 사후 검출력이 낮다는 뜻입니다.
(2) 대신 신뢰구간으로 무엇을 배제했는지 말합니다.
| 결과 | 퍼센트 구간 | 무엇을 말하는가 |
|---|---|---|
| 유의하지 않고 좁음 | 보다 큰 효과는 없습니다 | |
| 유의하지 않고 넓음 | 아무것도 배제 못 합니다 | |
| 유의하고 좁음 | 에서 사이입니다 | |
| 유의하고 넓음 | 방향만 압니다 |
178강 문제 5와 같은 표입니다. 사후 검출력 대신 이것을 보고하며, 구간이 실제로 이룬 정밀도를 말해 줍니다.
첫째 줄이 "효과가 없다"에 가장 가까운 진술입니다. 구간이 의미 없는 크기 안에 갇혀 있으므로, 큰 효과는 없다고 말할 수 있습니다.
(3) 설계 단계에서 정할 것을 정리합니다.
| 무엇을 정하는가 | 어디서 오는가 |
|---|---|
| 의미 있는 최소 효과 | 도메인과 비용이 정합니다 |
| 목표 검출력 | 놓쳤을 때의 손해가 정합니다 |
| 유의수준과 보정 | 잘못 찾았을 때의 손해 |
| 배분 비율 | 가능하면 반반으로 |
| 멈추는 규칙 | 미리 정하거나 순차 설계 |
첫째 줄이 통계가 아니라 판단입니다. 나머지는 그 판단에서 계산됩니다.
이 단원의 결론이 여기입니다. 검정은 설계가 끝난 뒤의 계산일 뿐입니다.
이 문제에서 배우는 것. 사후 검정력이 널리 쓰이는 이유가 그것이 답처럼 보이기 때문입니다. 유의하지 않은 결과를 받아 든 사람이 "그럼 우리 연구가 힘이 부족했나"를 묻는 것은 자연스러운데, 그 물음에 자료로는 답할 수 없습니다. 답할 수 있는 것은 **"이만한 크기의 효과는 배제했습니다"**뿐이고, 그것이 신뢰구간입니다. 그리고 정말 알고 싶은 것이 "다음 실험을 얼마나 크게 할까"라면, 관측값이 아니라 의미 있는 최소 효과로 문제 2의 계산을 다시 하면 됩니다.
바로 확인 5.
확인 5-1. 사후 검출력이 왜 새 정보가 아닌지 쓰세요.
답. 관측된 의 함수일 뿐이라 값과 같은 정보이기 때문입니다.
확인 5-2. 검산에서 가 에서 일 때의 사후 검출력을 쓰세요.
답. 입니다.
확인 5-3. 유의하지 않은 결과에서 무엇을 보고해야 하는지 쓰세요.
답. 신뢰구간으로 어느 크기의 효과를 배제했는지 말합니다.
| 무엇을 구하는가 | 무엇을 알아야 하는가 |
|---|---|
| 검출력 | 효과 크기, 표본 크기, 유의수준 |
| 표본 크기 | 효과 크기, 목표 검출력, 유의수준 |
| 잡을 수 있는 최소 효과 | 표본 크기, 목표 검출력, 유의수준 |
| 무엇이 검출력을 올리는가 | 어떻게 |
|---|---|
| 표본을 늘림 | 으로 오릅니다 |
| 분산을 줄임 | 짝짓기, 측정 품질, 층화 |
| 처치를 세게 함 | 효과 크기를 키웁니다 |
| 반반으로 배분 | 유효 크기가 최대 |
| 보정을 줄임 | 주 지표를 하나로 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 검출력을 계산 안 하고 시작합니다 | 하기 전에 실패가 정해집니다 |
| 앞 논문의 효과 크기를 씁니다 | 부풀어 있습니다 |
| 낮은 검출력으로 찾은 값을 믿습니다 | 배까지 부풉니다 |
| 사후 검정력을 보고합니다 | 의 함수일 뿐입니다 |
| 소수에만 노출해 실험합니다 | 유효 크기가 크게 줍니다 |
| 유의하지 않음을 없음으로 읽습니다 | 구간으로 배제 범위를 말합니다 |
문제 6. 검출력을 베타로 쓰세요.
답. 이며 있는 효과를 찾아낼 확률입니다.
문제 7. 밀리는 양을 식으로 쓰세요.
답. 효과 크기에 를 곱한 값입니다.
문제 8. 검산에서 , 의 공식값과 모의값을 쓰세요.
답. 와 입니다.
문제 9. 표본 크기 공식을 쓰세요.
답. 입니다.
문제 10. 검산에서 와 에 필요한 크기를 쓰세요.
답. 과 입니다.
문제 11. 검산에서 검출력을 에서 로 올릴 때의 배수를 쓰세요.
답. 배입니다.
문제 12. 승자의 저주가 무엇인지 쓰세요.
답. 유의성 문턱이 효과 크기를 선택해 부풀리는 현상입니다.
문제 13. 검산에서 집단당 일 때의 검출력과 참값 대비 배수를 쓰세요.
답. 이고 배입니다.
문제 14. 검산에서 집단당 일 때 부호가 뒤집힐 비율을 쓰세요.
답. 입니다.
문제 15. 검산에서 검정 개를 보정할 때의 표본 배수를 쓰세요.
답. 배입니다.
문제 16. 검산에서 대 으로 배분했을 때의 유효 집단 크기와 검출력을 쓰세요.
답. 과 입니다.
문제 17. 검산에서 기저 을 퍼센트 개선하는 데 필요한 을 쓰세요.
답. 입니다.
문제 18. 사후 검출력이 왜 새 정보가 아닌지 쓰세요.
답. 관측된 의 함수일 뿐이라 값과 같은 정보이기 때문입니다.
심화 1. 검정의 정확한 검출력을 정리하세요.
문제 1에서 분산을 안다고 두고 를 썼습니다. 실제로는 를 추정하므로 분포가 다릅니다.
중심이 밀린 분포를 비중심 라 하며, 밀림의 정도가 와 같은 입니다.
| 표본 크기 | 근사 | 비중심 |
|---|---|---|
| 작음 | 조금 높게 봅니다 | 정확합니다 |
| 큼 | 거의 같습니다 | 거의 같습니다 |
작은 표본에서 근사가 검출력을 낙관합니다. 자유도가 작으면 의 기준값이 보다 크므로, 문턱이 실제로는 더 높습니다.
실무에서는 계산한 에 두세 개를 더하는 것으로 충분합니다. 문제 2의 표에서 공식값과 정확값이 와 으로 가까웠는데, 로 하면 쯤이 됩니다.
심화 2. 순차 설계를 정리하세요.
178강 심화 4에서 여러 번 들여다보면 오류율이 오른다고 했습니다. 미리 계획하면 여러 번 볼 수 있습니다.
| 방법 | 어떻게 |
|---|---|
| 포콕 | 매번 같은 낮은 기준을 씁니다 |
| 오브라이언-플레밍 | 초반엔 엄격하고 후반에 느슨하게 |
| 알파 소비 함수 | 정보량에 따라 알파를 배분 |
둘째 줄이 임상시험의 표준입니다. 초반에 멈추려면 아주 강한 증거가 필요하고, 끝까지 가면 거의 를 씁니다.
얻는 것은 조기 종료입니다. 효과가 크면 일찍 멈춰 참가자를 덜 쓰고, 효과가 없어도 일찍 멈춥니다.
대신 계획을 지켜야 합니다. 중간에 규칙을 바꾸면 178강 심화 4의 문제로 되돌아갑니다.
심화 3. 군집 설계의 표본 크기를 정리하세요.
173강 문제 3의 설계효과가 여기서 표본 크기로 번역됩니다.
교실 단위, 병원 단위, 지역 단위로 배정하면 같은 뭉치 안의 사람들이 닮아 정보가 겹칩니다.
| 뭉치 크기 | 급내상관 | 급내상관 |
|---|---|---|
| 배 | 배 | |
| 배 | 배 | |
| 배 | 배 |
급내상관이 작아도 뭉치가 크면 크게 불어납니다. 에 뭉치가 이면 여섯 배가 필요합니다.
대책은 173강과 같습니다. 뭉치를 많이, 뭉치당 적게 뽑습니다.
심화 4. 최소 검출 가능 효과를 정리하세요.
실무에서는 표본이 먼저 정해지는 경우가 더 많습니다. 예산이나 트래픽이 정해져 있습니다.
그러면 물음을 뒤집습니다. "이 표본으로 잡을 수 있는 가장 작은 효과가 얼마인가"를 계산합니다.
| 집단당 크기 | MDE (검출력 ) |
|---|---|
이 값과 의미 있는 최소 효과를 견줍니다. MDE가 그보다 크면 실험을 해도 원하는 것을 못 봅니다.
실험을 시작하기 전에 이 비교를 하는 것이 가장 값싼 검사입니다. 계산 한 줄이며, 그것으로 헛된 실험을 걸러 냅니다.
심화 5. 베이즈 관점을 정리하세요.
검출력은 빈도주의의 개념입니다. 다른 틀에서는 다른 물음을 묻습니다.
| 무엇을 묻는가 | 어느 틀 |
|---|---|
| 효과가 있을 때 찾을 확률 | 검출력 |
| 자료를 본 뒤 효과가 있을 확률 | 사후확률 |
| 두 가설의 증거 비 | 베이즈 인자 |
| 결정의 기대 손실 | 의사결정이론 |
둘째 줄이 사람들이 값에서 원했던 것입니다. 178강 문제 4에서 가 그것이 아니라고 했는데, 사후확률은 사전확률을 넣으면 그 물음에 답합니다.
대가는 사전확률입니다. 효과가 있을 사전 확률을 어디서 가져올지가 논쟁의 자리이며, 그래서 두 틀이 공존합니다.
넷째 줄이 실무에 가장 가깝습니다. 검출력 이라는 관례도 사실 놓치는 손해가 잘못 찾는 손해의 네 배라는 암묵적 판단이며, 그것을 명시하는 것이 의사결정이론입니다.
심화 6. 이 단원이 무엇을 남겼는지 정리하세요.
| 강의 | 물음 | 남긴 것 |
|---|---|---|
| 178 | 두 집단이 다른가 | 와 효과 크기와 구간 |
| 179 | 가정이 깨지면 | 순위, 순열, 붓스트랩 |
| 180 | 셋 이상이면 | 제곱합 분해와 |
| 181 | 결과가 범주면 | 기대도수와 카이제곱 |
| 182 | 여러 번 물으면 | FWER와 FDR |
| 183 | 얼마나 모아야 하나 | 검출력과 설계 |
여섯 강의가 하나의 결론으로 모입니다.
178강 문제 2에서 시작한 원칙이 끝까지 이어졌습니다. 자료를 보고 방법을 고르면 안 되고, 자료를 보고 가설을 고르면 안 되고, 자료를 보고 멈추면 안 됩니다. 전부 자료를 보기 전에 정해야 합니다.
다음 단원은 그 자료로 관계를 적습니다. 184강부터의 회귀에서 이 단원의 도구가 전부 다시 나오는데, 집단 비교가 회귀의 특수한 경우이기 때문입니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| 알파 | 유의수준이며 종 오류의 확률입니다 | |
| 베타 | 종 오류의 확률입니다 | |
| 검출력 | 있는 효과를 찾아낼 확률입니다 | |
| 효과 크기 | 표준편차 단위의 차이입니다 | |
| 람다 | 분포가 밀리는 양입니다 | |
| z_ | 제트 베타 | 목표 검출력에 해당하는 분위수입니다 |
| MDE | 최소 검출 가능 효과 | 이 표본으로 잡을 수 있는 최소 효과입니다 |
| 승자의 저주 | winner's curse | 유의한 것만 보면 효과가 부풉니다 |
| 사후 검정력 | post hoc power | 관측값으로 계산한 검출력입니다 |
| 유효 표본 크기 | effective sample size | 배분을 반영한 실질 크기입니다 |
| 순차 설계 | sequential design | 여러 번 보되 미리 알파를 나눕니다 |
| 알파 소비 함수 | alpha spending | 시점마다 알파를 배분하는 규칙입니다 |
| 비중심 | noncentral t | 중심이 밀린 분포입니다 |
여기서 01단원이 끝납니다. 검정의 실제를 여섯 강의로 다뤘고, 모든 결론이 설계로 모였습니다.
184강부터 관계를 선으로 적습니다. 이 단원이 "다른가"를 물었다면 회귀는 **"얼마나 어떻게 다른가"**를 묻습니다. 180강 문제 2의 제곱합 분해가 가 되고, 178강의 두 집단 비교가 더미변수 하나짜리 회귀로 다시 나타나며, 177강 문제 3의 통제 문제가 어느 변수를 넣을 것인가로 되살아납니다.
import numpy as np
rng = np.random.default_rng(20260920)
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)
def erf(x):
a = abs(float(x))
if a > 6.0:
return 1.0 if x > 0 else -1.0
t, ssum, kk = 1.0, 1.0, 0
while True:
kk += 1
t *= 2.0 * a * a / (2.0 * kk + 1.0)
ssum += t
if t < 1e-18 * ssum:
break
v = 2.0 * a / np.sqrt(np.pi) * np.exp(-a * a) * ssum
return v if x > 0 else -v
def Phi(z):
return 0.5 * (1.0 + erf(float(z) / np.sqrt(2.0)))
def zq(p):
lo, hi = -12.0, 12.0
for _ in range(200):
mid = 0.5 * (lo + hi)
if Phi(mid) < p:
lo = mid
else:
hi = mid
return 0.5 * (lo + hi)
def power_z(d, n, alpha=0.05):
za = zq(1.0 - alpha / 2.0)
lam = d * np.sqrt(n / 2.0)
return (1.0 - Phi(za - lam)) + Phi(-za - lam)
def n_for_power(d, target=0.8, alpha=0.05):
n = 2
while power_z(d, n, alpha) < target and n < 10 ** 8:
n += 1
return n
# --- 문제 1: 네 값이 서로 묶여 있다 --------------------------------------
print(" 검정에는 네 가지 값이 있고 셋을 정하면 넷째가 정해집니다")
print(" %s %s" % (pw("무엇", 16), rw("뜻", 34)))
for a, b in [("유의수준", "없는 효과를 있다고 할 확률"),
("검출력", "있는 효과를 찾아낼 확률"),
("효과 크기", "표준편차 단위의 차이"),
("표본 크기", "집단당 몇 개를 모으는가")]:
print(" %s %s" % (pw(a, 16), rw(b, 34)))
print(" 셋을 정하면 넷째가 계산됩니다. 설계란 이 넷을 맞추는 일입니다")
print(" 두 종류의 오류가 서로 맞바꿈 관계입니다")
print(" %s %s %s" % (pw("", 16), rw("참으로 효과가 있음", 22),
rw("참으로 효과가 없음", 22)))
for a, b, c in [("기각함", "옳은 판단", "1종 오류 (알파)"),
("기각 못 함", "2종 오류 (베타)", "옳은 판단")]:
print(" %s %s %s" % (pw(a, 16), rw(b, 22), rw(c, 22)))
print(" 검출력은 1 에서 베타를 뺀 값입니다. 관례적 목표는 0.8 입니다")
print(" 0.8 이면 있는 효과를 다섯 번에 한 번은 놓친다는 뜻입니다")
print(" 검출력 공식을 세우고 모의와 맞춰 봅니다")
print(" 검출력 = P(|Z| > z_a/2) 이고 Z 의 중심이 d x sqrt(n/2) 만큼 밀립니다")
R1 = 40000
za = zq(0.975)
print(" %s %s %s %s %s" % (pw("효과 크기", 12), rw("집단당 크기", 14),
rw("밀리는 양", 12), rw("공식", 12), rw("모의", 12)))
for d, n in [(0.2, 20), (0.5, 20), (0.5, 64), (0.8, 26), (1.0, 20)]:
A = rng.normal(d, 1.0, (R1, n))
B = rng.normal(0.0, 1.0, (R1, n))
z = (A.mean(1) - B.mean(1)) / np.sqrt(2.0 / n)
print(" %s %14d %12.4f %12.4f %12.4f"
% (pw("%.1f" % d, 12), n, d * np.sqrt(n / 2.0), power_z(d, n),
float((np.abs(z) > za).mean())))
print(" 공식과 모의가 잘 맞습니다. 밀리는 양이 검출력을 정합니다")
print(" 분산을 안다고 두고 z 를 썼습니다. t 로 하면 조금 낮아집니다")
# --- 문제 2: 표본 크기를 거꾸로 구하기 -----------------------------------
print(" 검출력 0.8 을 목표로 표본 크기를 구합니다")
print(" n = 2 (z_a/2 + z_b)^2 / d^2 입니다")
zb = zq(0.8)
print(" z_a/2 = %.4f 이고 z_b = %.4f 이며 둘의 합의 제곱은 %.4f 입니다"
% (za, zb, (za + zb) ** 2))
print(" %s %s %s %s" % (pw("효과 크기", 12), rw("공식값", 12),
rw("정확히 푼 값", 14), rw("실제 검출력", 14)))
for d in [0.2, 0.3, 0.5, 0.8, 1.0]:
approx = 2.0 * (za + zb) ** 2 / d ** 2
exact = n_for_power(d)
print(" %s %12.2f %14d %14.4f"
% (pw("%.1f" % d, 12), approx, exact, power_z(d, exact)))
print(" 효과가 절반이면 표본이 네 배 듭니다. d 의 제곱에 반비례합니다")
print(" 효과 크기 0.2 를 잡으려면 집단당 393 명이 필요합니다")
print(" 목표 검출력을 올리는 값도 계산됩니다")
print(" %s %s %s %s" % (pw("목표 검출력", 14), rw("z_b", 12),
rw("d=0.5 일 때 n", 16), rw("0.8 대비", 12)))
n80 = n_for_power(0.5, 0.8)
for tgt in [0.5, 0.8, 0.9, 0.95, 0.99]:
nn = n_for_power(0.5, tgt)
zbv = zq(tgt)
print(" %s %12.4f %16d %12.4f"
% (pw("%.2f" % tgt, 14), 0.0 if abs(zbv) < 1e-9 else zbv, nn,
nn / float(n80)))
print(" 0.8 에서 0.99 로 올리려면 표본이 2.33 배 듭니다")
print(" 검출력 0.5 는 동전 던지기와 같습니다. 그런 연구는 안 하느니만 못합니다")
print(" 세 값을 바꿔 가며 표를 만듭니다")
print(" %s %s %s %s %s" % (pw("집단당 크기", 12), rw("d=0.2", 12), rw("d=0.5", 12),
rw("d=0.8", 12), rw("d=1.0", 12)))
for n in [10, 30, 60, 100, 400]:
print(" %s %12.4f %12.4f %12.4f %12.4f"
% (pw("%d" % n, 12), power_z(0.2, n), power_z(0.5, n),
power_z(0.8, n), power_z(1.0, n)))
print(" 왼쪽 위가 위험 지대입니다. 작은 효과를 작은 표본으로 찾으려는 자리입니다")
print(" 오른쪽 아래는 낭비입니다. 이미 확실한 것에 표본을 더 쓰고 있습니다")
# --- 문제 3: 검출력이 낮으면 무엇이 나쁜가 --------------------------------
print(" 검출력이 낮으면 못 찾는 것만 문제가 아닙니다")
R3 = 200000
d3 = 0.3
print(" 효과 크기가 0.3 인 자료에서 유의하게 나온 것만 모아 봅니다")
print(" %s %s %s %s %s"
% (pw("집단당 크기", 12), rw("검출력", 12), rw("유의한 것의 평균 효과", 24),
rw("참값 대비", 12), rw("부호가 뒤집힐 비율", 20)))
for n in [8, 16, 40, 100, 400]:
A = rng.normal(d3, 1.0, (R3 // 4, n))
B = rng.normal(0.0, 1.0, (R3 // 4, n))
diff = A.mean(1) - B.mean(1)
sp = np.sqrt((A.var(1, ddof=1) + B.var(1, ddof=1)) / 2.0)
z = diff / np.sqrt(2.0 / n)
sig = np.abs(z) > za
dh = diff / sp
wrong = (sig & (diff < 0)).sum() / max(sig.sum(), 1)
print(" %s %12.4f %24.4f %12.4f %20.4f"
% (pw("%d" % n, 12), power_z(d3, n), float(np.abs(dh[sig]).mean()),
float(np.abs(dh[sig]).mean()) / d3, float(wrong)))
print(" 검출력이 낮을수록 유의하게 나온 효과가 크게 부풀어 있습니다")
print(" 작은 표본에서는 우연히 큰 차이가 나야만 문턱을 넘기 때문입니다")
print(" 이것을 승자의 저주라 하고 마지막 열은 부호까지 틀릴 확률입니다")
print(" 그래서 재현이 안 됩니다")
print(" %s %s" % (pw("무슨 일이 일어나는가", 28), rw("결과", 22)))
for a, b in [("작은 표본으로 큰 효과를 보고", "부풀린 값이 실립니다"),
("다른 팀이 그 값으로 설계", "표본을 너무 적게 잡습니다"),
("재현 시도가 실패", "원래 효과가 없다고 결론"),
("사실은 작은 효과가 있었음", "아무도 모릅니다")]:
print(" %s %s" % (pw(a, 28), rw(b, 22)))
print(" 앞 논문의 효과 크기로 설계하면 안 되는 이유가 이것입니다")
print(" 실무에서 의미 있는 최소 효과를 따로 정해야 합니다")
# --- 문제 4: 다중비교와 설계 --------------------------------------------
print(" 182강의 보정을 표본 크기로 번역합니다")
print(" 보정하면 z_a/2 가 커지고 그만큼 표본이 더 듭니다")
print(" %s %s %s %s %s" % (pw("검정 수", 10), rw("보정한 유의수준", 18),
rw("z 기준값", 12), rw("d=0.5 일 때 n", 16),
rw("한 개 대비", 12)))
n1 = n_for_power(0.5, 0.8, 0.05)
for m in [1, 5, 20, 100]:
al = 0.05 / m
nn = n_for_power(0.5, 0.8, al)
print(" %s %18.6f %12.4f %16d %12.4f"
% (pw("%d" % m, 10), al, zq(1.0 - al / 2.0), nn, nn / float(n1)))
print(" 검정이 백 배로 늘어도 표본은 두 배가 채 안 됩니다")
print(" z 가 로그처럼 천천히 자라기 때문입니다. 보정의 값이 생각보다 쌉니다")
print(" 총 표본을 어떻게 나눌지도 검출력을 바꿉니다")
print(" 전체 200 명을 두 집단에 나눕니다")
print(" %s %s %s %s" % (pw("배분", 16), rw("각 크기", 14),
rw("유효 집단 크기", 18), rw("검출력", 12)))
for r in [0.5, 0.4, 0.3, 0.2, 0.1]:
na = int(200 * r)
nb = 200 - na
neff = 2.0 / (1.0 / na + 1.0 / nb)
print(" %s %14s %18.2f %12.4f"
% (pw("%.0f 대 %.0f" % (100 * r, 100 * (1 - r)), 16),
rw("%d, %d" % (na, nb), 14), neff, power_z(0.5, neff / 2.0)))
print(" 반반이 가장 좋습니다. 유효 크기가 조화평균이라 한쪽이 작으면 크게 손해입니다")
print(" 유효 집단 크기가 36 이면 전체가 72 명 값입니다. 200 명 중 128 명을 버린 셈입니다")
print(" 비율을 비교할 때는 사건 수가 정합니다")
print(" %s %s %s %s %s" % (pw("기저 비율", 12), rw("절대 차이", 12),
rw("상대 변화", 12), rw("필요한 n", 14),
rw("기대 사건 수", 14)))
for p1, p2 in [(0.50, 0.55), (0.20, 0.25), (0.05, 0.10), (0.01, 0.02), (0.01, 0.012)]:
pb = 0.5 * (p1 + p2)
num = (za * np.sqrt(2 * pb * (1 - pb)) + zb * np.sqrt(p1 * (1 - p1) + p2 * (1 - p2))) ** 2
nn = num / (p2 - p1) ** 2
print(" %s %12.4f %12.4f %14.0f %14.0f"
% (pw("%.2f" % p1, 12), p2 - p1, (p2 - p1) / p1,
np.ceil(nn), np.ceil(nn) * pb))
print(" 앞의 세 줄은 절대 차이가 같은데 기저 비율이 낮을수록 n 이 줄어듭니다")
print(" 분산 p(1-p) 가 0.5 에서 최대라 낮은 비율에서는 흩어짐이 작기 때문입니다")
print(" 그런데 기저가 0.05 인데 절대 차이 0.05 라는 것은 두 배가 된다는 뜻입니다")
print(" 실무에서 그런 개선은 드뭅니다. 상대 변화를 고정하면 이야기가 뒤집힙니다")
print(" 마지막 줄은 20 퍼센트 개선인데 집단당 4 만 명이 넘습니다")
print(" 전환율 1 퍼센트의 A/B 가 어려운 이유가 이것입니다")
# --- 문제 5: 사후 검정력과 대안 -----------------------------------------
print(" 자료를 본 뒤에 검출력을 계산하면 안 됩니다")
print(" 관측된 효과 크기로 검출력을 구하면 p 값의 함수가 되어 버립니다")
R5, n5 = 40000, 20
A5 = rng.normal(0.0, 1.0, (R5, n5))
B5 = rng.normal(0.0, 1.0, (R5, n5))
dd = A5.mean(1) - B5.mean(1)
sp5 = np.sqrt((A5.var(1, ddof=1) + B5.var(1, ddof=1)) / 2.0)
z5 = dd / np.sqrt(2.0 / n5)
dhat = np.abs(dd / sp5)
print(" 효과가 정말 0 인 자료에서 관측된 d 로 사후 검출력을 계산합니다")
print(" %s %s %s" % (pw("|z| 의 구간", 16), rw("관측된 d 의 평균", 20),
rw("사후 검출력의 평균", 22)))
for lo, hi in [(0.0, 1.0), (1.0, 1.96), (1.96, 2.5), (2.5, 10.0)]:
m5 = (np.abs(z5) >= lo) & (np.abs(z5) < hi)
dm = float(dhat[m5].mean())
print(" %s %20.4f %22.4f"
% (pw("%.2f ~ %.2f" % (lo, hi), 16), dm, power_z(dm, n5)))
print(" 사후 검출력이 z 의 함수일 뿐입니다. 새 정보가 하나도 없습니다")
print(" 유의하지 않았으니 검출력이 낮았다는 말은 동어반복입니다")
print(" 대신 신뢰구간으로 무엇을 배제했는지 말합니다")
print(" %s %s %s" % (pw("결과", 22), rw("95 퍼센트 구간", 22), rw("무엇을 말하는가", 26)))
for nm, lo, hi, msg in [("유의하지 않고 좁음", -0.10, 0.14, "0.14 보다 큰 효과는 없습니다"),
("유의하지 않고 넓음", -0.80, 0.90, "아무것도 배제 못 합니다"),
("유의하고 좁음", 0.30, 0.50, "0.3 에서 0.5 사이입니다"),
("유의하고 넓음", 0.05, 1.20, "방향만 압니다")]:
print(" %s %s %s"
% (pw(nm, 22), rw("[%.2f, %.2f]" % (lo, hi), 22), rw(msg, 26)))
print(" 178강 문제 5 와 같은 표입니다. 사후 검출력 대신 이것을 보고합니다")
print(" 설계 단계에서 정할 것을 정리합니다")
print(" %s %s" % (pw("무엇을 정하는가", 26), rw("어디서 오는가", 26)))
for a, b in [("의미 있는 최소 효과", "도메인과 비용이 정합니다"),
("목표 검출력", "놓쳤을 때의 손해가 정합니다"),
("유의수준과 보정", "잘못 찾았을 때의 손해"),
("배분 비율", "가능하면 반반으로"),
("멈추는 규칙", "미리 정하거나 순차 설계")]:
print(" %s %s" % (pw(a, 26), rw(b, 26)))
print(" 첫째 줄이 통계가 아니라 판단입니다. 나머지는 그 판단에서 계산됩니다")
print(" 이 단원의 결론이 여기입니다. 검정은 설계가 끝난 뒤의 계산일 뿐입니다")
# 검정에는 네 가지 값이 있고 셋을 정하면 넷째가 정해집니다
# 무엇 뜻
# 유의수준 없는 효과를 있다고 할 확률
# 검출력 있는 효과를 찾아낼 확률
# 효과 크기 표준편차 단위의 차이
# 표본 크기 집단당 몇 개를 모으는가
# 셋을 정하면 넷째가 계산됩니다. 설계란 이 넷을 맞추는 일입니다
# 두 종류의 오류가 서로 맞바꿈 관계입니다
# 참으로 효과가 있음 참으로 효과가 없음
# 기각함 옳은 판단 1종 오류 (알파)
# 기각 못 함 2종 오류 (베타) 옳은 판단
# 검출력은 1 에서 베타를 뺀 값입니다. 관례적 목표는 0.8 입니다
# 0.8 이면 있는 효과를 다섯 번에 한 번은 놓친다는 뜻입니다
# 검출력 공식을 세우고 모의와 맞춰 봅니다
# 검출력 = P(|Z| > z_a/2) 이고 Z 의 중심이 d x sqrt(n/2) 만큼 밀립니다
# 효과 크기 집단당 크기 밀리는 양 공식 모의
# 0.2 20 0.6325 0.0969 0.0949
# 0.5 20 1.5811 0.3526 0.3499
# 0.5 64 2.8284 0.8074 0.8090
# 0.8 26 2.8844 0.8224 0.8240
# 1.0 20 3.1623 0.8854 0.8852
# 공식과 모의가 잘 맞습니다. 밀리는 양이 검출력을 정합니다
# 분산을 안다고 두고 z 를 썼습니다. t 로 하면 조금 낮아집니다
# 검출력 0.8 을 목표로 표본 크기를 구합니다
# n = 2 (z_a/2 + z_b)^2 / d^2 입니다
# z_a/2 = 1.9600 이고 z_b = 0.8416 이며 둘의 합의 제곱은 7.8489 입니다
# 효과 크기 공식값 정확히 푼 값 실제 검출력
# 0.2 392.44 393 0.8006
# 0.3 174.42 175 0.8013
# 0.5 62.79 63 0.8013
# 0.8 24.53 25 0.8074
# 1.0 15.70 16 0.8074
# 효과가 절반이면 표본이 네 배 듭니다. d 의 제곱에 반비례합니다
# 효과 크기 0.2 를 잡으려면 집단당 393 명이 필요합니다
# 목표 검출력을 올리는 값도 계산됩니다
# 목표 검출력 z_b d=0.5 일 때 n 0.8 대비
# 0.50 0.0000 31 0.4921
# 0.80 0.8416 63 1.0000
# 0.90 1.2816 85 1.3492
# 0.95 1.6449 104 1.6508
# 0.99 2.3263 147 2.3333
# 0.8 에서 0.99 로 올리려면 표본이 2.33 배 듭니다
# 검출력 0.5 는 동전 던지기와 같습니다. 그런 연구는 안 하느니만 못합니다
# 세 값을 바꿔 가며 표를 만듭니다
# 집단당 크기 d=0.2 d=0.5 d=0.8 d=1.0
# 10 0.0732 0.2010 0.4322 0.6088
# 30 0.1211 0.4907 0.8725 0.9721
# 60 0.1948 0.7819 0.9923 0.9998
# 100 0.2930 0.9424 0.9999 1.0000
# 400 0.8074 1.0000 1.0000 1.0000
# 왼쪽 위가 위험 지대입니다. 작은 효과를 작은 표본으로 찾으려는 자리입니다
# 오른쪽 아래는 낭비입니다. 이미 확실한 것에 표본을 더 쓰고 있습니다
# 검출력이 낮으면 못 찾는 것만 문제가 아닙니다
# 효과 크기가 0.3 인 자료에서 유의하게 나온 것만 모아 봅니다
# 집단당 크기 검출력 유의한 것의 평균 효과 참값 대비 부호가 뒤집힐 비율
# 8 0.0922 1.2819 4.2731 0.0483
# 16 0.1357 0.8897 2.9658 0.0187
# 40 0.2687 0.5808 1.9362 0.0018
# 100 0.5641 0.4003 1.3343 0.0000
# 400 0.9888 0.3022 1.0074 0.0000
# 검출력이 낮을수록 유의하게 나온 효과가 크게 부풀어 있습니다
# 작은 표본에서는 우연히 큰 차이가 나야만 문턱을 넘기 때문입니다
# 이것을 승자의 저주라 하고 마지막 열은 부호까지 틀릴 확률입니다
# 그래서 재현이 안 됩니다
# 무슨 일이 일어나는가 결과
# 작은 표본으로 큰 효과를 보고 부풀린 값이 실립니다
# 다른 팀이 그 값으로 설계 표본을 너무 적게 잡습니다
# 재현 시도가 실패 원래 효과가 없다고 결론
# 사실은 작은 효과가 있었음 아무도 모릅니다
# 앞 논문의 효과 크기로 설계하면 안 되는 이유가 이것입니다
# 실무에서 의미 있는 최소 효과를 따로 정해야 합니다
# 182강의 보정을 표본 크기로 번역합니다
# 보정하면 z_a/2 가 커지고 그만큼 표본이 더 듭니다
# 검정 수 보정한 유의수준 z 기준값 d=0.5 일 때 n 한 개 대비
# 1 0.050000 1.9600 63 1.0000
# 5 0.010000 2.5758 94 1.4921
# 20 0.002500 3.0233 120 1.9048
# 100 0.000500 3.4808 150 2.3810
# 검정이 백 배로 늘어도 표본은 두 배가 채 안 됩니다
# z 가 로그처럼 천천히 자라기 때문입니다. 보정의 값이 생각보다 쌉니다
# 총 표본을 어떻게 나눌지도 검출력을 바꿉니다
# 전체 200 명을 두 집단에 나눕니다
# 배분 각 크기 유효 집단 크기 검출력
# 50 대 50 100, 100 100.00 0.7054
# 40 대 60 80, 120 96.00 0.6878
# 30 대 70 60, 140 84.00 0.6298
# 20 대 80 40, 160 64.00 0.5160
# 10 대 90 20, 180 36.00 0.3230
# 반반이 가장 좋습니다. 유효 크기가 조화평균이라 한쪽이 작으면 크게 손해입니다
# 유효 집단 크기가 36 이면 전체가 72 명 값입니다. 200 명 중 128 명을 버린 셈입니다
# 비율을 비교할 때는 사건 수가 정합니다
# 기저 비율 절대 차이 상대 변화 필요한 n 기대 사건 수
# 0.50 0.0500 0.1000 1565 822
# 0.20 0.0500 0.2500 1094 246
# 0.05 0.0500 1.0000 435 33
# 0.01 0.0100 1.0000 2319 35
# 0.01 0.0020 0.2000 42693 470
# 앞의 세 줄은 절대 차이가 같은데 기저 비율이 낮을수록 n 이 줄어듭니다
# 분산 p(1-p) 가 0.5 에서 최대라 낮은 비율에서는 흩어짐이 작기 때문입니다
# 그런데 기저가 0.05 인데 절대 차이 0.05 라는 것은 두 배가 된다는 뜻입니다
# 실무에서 그런 개선은 드뭅니다. 상대 변화를 고정하면 이야기가 뒤집힙니다
# 마지막 줄은 20 퍼센트 개선인데 집단당 4 만 명이 넘습니다
# 전환율 1 퍼센트의 A/B 가 어려운 이유가 이것입니다
# 자료를 본 뒤에 검출력을 계산하면 안 됩니다
# 관측된 효과 크기로 검출력을 구하면 p 값의 함수가 되어 버립니다
# 효과가 정말 0 인 자료에서 관측된 d 로 사후 검출력을 계산합니다
# |z| 의 구간 관측된 d 의 평균 사후 검출력의 평균
# 0.00 ~ 1.00 0.1472 0.0752
# 1.00 ~ 1.96 0.4438 0.2893
# 1.96 ~ 2.50 0.7031 0.6039
# 2.50 ~ 10.00 0.9216 0.8301
# 사후 검출력이 z 의 함수일 뿐입니다. 새 정보가 하나도 없습니다
# 유의하지 않았으니 검출력이 낮았다는 말은 동어반복입니다
# 대신 신뢰구간으로 무엇을 배제했는지 말합니다
# 결과 95 퍼센트 구간 무엇을 말하는가
# 유의하지 않고 좁음 [-0.10, 0.14] 0.14 보다 큰 효과는 없습니다
# 유의하지 않고 넓음 [-0.80, 0.90] 아무것도 배제 못 합니다
# 유의하고 좁음 [0.30, 0.50] 0.3 에서 0.5 사이입니다
# 유의하고 넓음 [0.05, 1.20] 방향만 압니다
# 178강 문제 5 와 같은 표입니다. 사후 검출력 대신 이것을 보고합니다
# 설계 단계에서 정할 것을 정리합니다
# 무엇을 정하는가 어디서 오는가
# 의미 있는 최소 효과 도메인과 비용이 정합니다
# 목표 검출력 놓쳤을 때의 손해가 정합니다
# 유의수준과 보정 잘못 찾았을 때의 손해
# 배분 비율 가능하면 반반으로
# 멈추는 규칙 미리 정하거나 순차 설계
# 첫째 줄이 통계가 아니라 판단입니다. 나머지는 그 판단에서 계산됩니다
# 이 단원의 결론이 여기입니다. 검정은 설계가 끝난 뒤의 계산일 뿐입니다