1. 学ぶ
  2. /
  3. コース
  4. /
  5. Pythonで学ぶ統計的思考(パート1)

Connected

演習

ストーリーがあれば、シミュレーションできます!

確率分布を説明するストーリーに、既知の分布名が当てはまらないこともあります。そんなときも心配はいりません。常にシミュレーションで再現できます。この演習と次の演習でそれを行います。

以前の演習では、メジャーリーグのノーヒットノーランという希少事象を扱いました。1試合で単打・二塁打・三塁打・本塁打の4種類すべてを記録する「サイクルヒット」も、野球ではまれな出来事です。ノーヒッターと同様に、これはポアソン過程としてモデル化できるため、サイクルヒットが起きるまでの時間も指数分布に従います。

では、ノーヒッターが起きてから続けてサイクルヒットが出るまで、どれくらい待つ必要があるでしょうか。考え方としては、まずノーヒッターが起きるまで待ち、その後でサイクルヒットが起きるまで待つ、という流れです。言い換えると、二つの異なるポアソン過程の到来を連続して待つときの合計待ち時間は何か、という問題です。合計待ち時間は、ノーヒッターを待った時間とサイクルヒットを待った時間の和になります。

これから、このストーリーで記述される分布からサンプリングする関数を書いていきます。

指示

100 XP
  • 呼び出しシグネチャ successive_poisson(tau1, tau2, size=1) の関数を定義し、ノーヒッターとサイクルヒットの待ち時間をサンプリングします。
    • ノーヒッターの待ち時間を、パラメータ tau1 の指数分布から size 個サンプリングし、t1 に代入します。
    • サイクルヒットの待ち時間を、パラメータ tau2 の指数分布から size 個サンプリングし、t2 に代入します。
    • 関数は、これら二つの事象の待ち時間の合計を返します。