12강 / 20강

여러 번 돌려 합의를 본다 — 부트스트랩

이 간선은 사람이 몇 명 바뀌어도 버티는가

여러 번 돌려 합의를 본다 — 부트스트랩
샘플을 바꿔 가며 100번 다시 그려 보고, 매번 나오는 선만 남깁니다.

지금까지의 네트워크는 200명이라는 특정한 표본에서 나온 것입니다. 만약 다른 200명을 모았다면 같은 그물이 나왔을까요?

확인할 방법이 있습니다. 부트스트랩(bootstrap) 입니다.

200명 중에서 복원추출로 200명을 다시 뽑는다 → 네트워크를 다시 그린다 → 100번 반복

복원추출이라 어떤 사람은 세 번 뽑히고 어떤 사람은 아예 안 뽑힙니다 (평균적으로 37%가 빠집니다). 그러니 매번 조금씩 다른 자료가 되죠. 그래도 살아남는 간선이 튼튼한 간선입니다.

부트스트랩의 고전적인 37% 입니다. e^-1 = 0.368 에서 옵니다.
Python 브라우저에서 실행
매번 나오는 간선과 어쩌다 한 번 나오는 간선이 뚜렷이 갈립니다.
Python 브라우저에서 실행

몇 번 이상 나와야 남길까

ARACNe-AP 는 이것도 통계로 정합니다. 귀무 가정은 이렇습니다 — "만약 간선들이 매 판마다 아무렇게나 뽑힌다면, 한 간선이 등장하는 횟수는 포아송 분포를 따를 것이다."

λ = (전체 등장 횟수) ÷ (후보 쌍 수)   →   P(X ≥ k) < p 인 최소 k

그 k 보다 많이 나온 간선만 남깁니다. 편리한 점은 판수를 바꿔도 알아서 따라온다는 것이고, 조심할 점은 후보 쌍 수에 따라 기준의 성격이 달라진다는 것입니다. 직접 보시죠.

20판에서 포아송 기준은 16회(80%)로 잡힙니다 — 이 자료에서는 정밀도 1.000 이 나오는 아주 좋은 자리입니다.
Python 브라우저에서 실행

🎮 등장 횟수로 줄 세우기

100판을 미리 돌려 둔 결과입니다. 기준선을 옮기며 몇 회 이상을 남길 때 가장 좋은지 찾아보세요.

부트스트랩 실험실 — 몇 번 이상 나와야 믿을 만한가
불러오는 중…
5~12강이 이 함수 하나에 들어 있습니다.
Python 브라우저에서 실행
🤔 확인 문제
부트스트랩에서 복원추출을 하면 원래 샘플의 몇 %쯤이 한 번도 안 뽑힐까요?
🤔 확인 문제
부트스트랩이 걸러 내는 불안정성이 아닌 것은?
🤔 확인 문제
같은 자료를 20판 돌렸을 때는 포아송 기준이 80%(16/20)였는데, 100판에서는 51%(51/100)로 내려갔습니다. 왜일까요?