1. 학습
  2. /
  3. 강의
  4. /
  5. Python으로 하는 Statistical Thinking (파트 1)

Connected

연습 문제

이야기가 있다면, 곧바로 시뮬레이션할 수 있어요!

때로는 우리가 다루려는 확률 분포를 설명하는 이야기가 있지만, 그에 해당하는 이름 있는 분포가 없을 때가 있어요. 그래도 걱정하지 마세요! 언제든 시뮬레이션으로 구현할 수 있습니다. 이번 연습과 다음 연습에서 그렇게 해 보겠습니다.

앞선 연습에서 메이저리그에서의 노히터처럼 드문 사건을 살펴봤습니다. 한 타자가 한 경기에서 단타, 2루타, 3루타, 홈런을 모두 기록하는 ‘사이클 달성’도 또 다른 희귀한 야구 사건이에요. 노히터와 마찬가지로 이를 Poisson 과정으로 모델링할 수 있으므로, 사이클 달성 사이의 시간도 Exponential 분포를 따릅니다.

노히터를 보고 나서 그다음으로 사이클 달성까지 보려면 얼마나 기다려야 할까요? 아이디어는 노히터를 위해 일정 시간을 기다리고, 그 후에 사이클 달성을 위해 다시 기다린다는 것입니다. 달리 말하면, 서로 다른 두 Poisson 과정이 차례로 도착할 때의 총 대기 시간이 얼마인가 하는 문제예요. 총 대기 시간은 노히터를 기다린 시간과 사이클 달성을 기다린 시간을 더한 값입니다.

이제, 이 이야기로 정의되는 분포에서 샘플을 뽑는 함수를 작성해 보세요.

지침

100 XP
  • 호출 시그니처가 successive_poisson(tau1, tau2, size=1)인 함수를 정의해 노히터와 사이클 달성까지의 대기 시간을 샘플링하세요.
    • tau1로 모수화한 Exponential 분포에서 노히터에 대한 대기 시간을 (size 개수만큼) 뽑아 t1에 할당하세요.
    • tau2로 모수화한 Exponential 분포에서 사이클 달성에 대한 대기 시간을 (size 개수만큼) 뽑아 t2에 할당하세요.
    • 함수는 두 사건의 대기 시간을 합한 값을 반환해야 합니다.