12강 / 20강
순열검정 — p 값을 손으로 만든다
/til 18강이 하는 그 일 · 공식 없이 검정하기
8강에서 이미 해 봤습니다. 여기서는 왜 그게 정당한지를 봅니다.
귀무가설이 "이름표는 값과 아무 상관이 없다" 라면, 이름표를 어떻게 붙이든 똑같이 그럴듯한 세상입니다.
실제로 본 배열 A A A B B B → 차이 +2.4
섞어 본 배열 1 A B A B A B → 차이 -0.3
섞어 본 배열 2 B A A A B B → 차이 +1.1
섞어 본 배열 3 B B A A A B → 차이 -1.7
... 20,000 번
이 20,000 개가 '아무 상관 없었다면' 의 분포다.
실제 값 +2.4 가 그중 몇 번째로 극단적인가 → 그것이 p 값
섞기를 늘릴수록 값이 안정됩니다. 그리고 t 검정과 <b>거의 같은 답</b>에 닿습니다.
Python
브라우저에서 실행
언제 순열검정으로 가나
순열이 좋을 때
· 표본이 작다
· 분포가 이상하다
· 통계량이 복잡해 이론 분포가 없다
· 가정을 아예 안 걸고 싶다
· 분포가 이상하다
· 통계량이 복잡해 이론 분포가 없다
· 가정을 아예 안 걸고 싶다
순열이 어려울 때
· 계산이 오래 걸린다
· 자료에 구조가 있다 (짝·군집·시간)
→ 그 구조 안에서만 섞어야 한다
· 자료에 구조가 있다 (짝·군집·시간)
→ 그 구조 안에서만 섞어야 한다
두 번째 상자의 마지막 줄이 함정입니다. 짝지어진 자료를 통째로 섞으면 짝 구조까지 깨뜨려 엉뚱한 귀무분포가 나옵니다. 짝 자료는 짝 안에서 좌우만 바꿔야 해요.
구조를 지키느냐가 <b>결론을 바꿉니다</b>. 섞는 방식이 곧 귀무가설의 정의입니다.
Python
브라우저에서 실행
🤔 확인 문제
순열검정을 1,000회 돌려 관측값보다 극단적인 경우가 0번 나왔습니다. 보고할 p 값은?
해설 관측값 자신을 세면 최소 1건이므로 (0+1)/(1000+1) ≈ 0.001 입니다. 순열검정의 p 는 절대 0 이 아닙니다 — 더 작다고 말하려면 더 많이 섞어야 해요.