二項分布(Binomial distribution)
今ここにSレアであるあっかりーんが当たるガチャがあるとします。
ネットの情報からあっかりーんが当たる確率は75%(!?)だとの情報を運良くゲットしたとしましょう。
あなたはこのSレアあっかりーんがとても欲しくて、1回あたり200円のそのガチャに5000円をつっこもうと考えています。
〜〜
ガチャを回し、当たり・はずれのような結果が2パターンになるものをベルヌーイ試行と言います。
※各回の試行は独立です
当たる確率を, はずれる確率をであるガチャを回引くとすると、各あっかりーん数の得られる確率は
で与えられます。この分布を二項分布(Binomial distribution)と呼びます。ベルヌーイ試行をn回行なったときにある事象(当たりなど)が何回起こるかの確率分布です。この一般化された式を見ての通り、二項分布は試行回数nと当たる確率pにより決まることが分かります。つまり、二項分布のパラメータはとなのでと書いたりします。
それでは最初に書いたあっかりーんガチャを例に、二項分布をみてみましょう。
あっかりーんが当たる確率は75%、引く回数は5000円/200円で25回です。
つまり、なので、このときの確率分布は、
となります。以下のようにpythonのscipyパッケージを用いると簡単に求めることができます。
from scipy.stats import binom p = 0.75 # あっかりーんが当たる確率 n = 5000/200 # 200円のガチャに5000円をつっこむので25回まわせる x = range(int(n)+1) # 0~25回まで当たるときに着目 binomial = binom.pmf(x,n,p)
import matplotlib.pyplot as plt %matplotlib inline plt.plot(x, binomial, 'o') plt.xlabel('number of success', fontsize=15) plt.ylabel('probability', fontsize=15)
分布がでました。
では、25回まわした時に得られるあっかりーん数のうち、最も確率が高いのはなんでしょうか?
binomial.argmax()
19
考察
このガチャを25回まわすと19個ものあっかりーんが得られる可能性が最も高いことがわかりました。よかったですね。
ちなみに二項分布は期待値 , 分散となります。
n*p
18.75
n*p*(1-p)
4.6875
※平均分散の導き方
・平均
※
5行目の和の部分はの確率分布の和であるので1になります。
・分散
※
※
おまけ
当たる確率0.1%のSSレア京子ちゃんを狙った場合:
p_kyoko = 0.1/100 #京子ちゃんが当たる確率 binomial_k = binom.pmf(x,n,p_kyoko) plt.plot(x, binomial_k, 'o') plt.xlabel('number of success', fontsize=15) plt.ylabel('probability', fontsize=15)
なんと25回まわしたぐらいではあたらなそうです。 では10倍の5万円つぎこんだらどうでしょうか
n = 50000/200 # 200円のガチャに50000円をつっこむ x = range(int(n)+1) # 0~250回まで当たるときに着目 binomial_k = binom.pmf(x,n,p_kyoko) plt.plot(x, binomial_k, 'o') plt.xlabel('number of success', fontsize=15) plt.ylabel('probability', fontsize=15)
5回までのところを拡大してみましょう。
plt.plot(range(6), binomial_k[:6], 'o') plt.xlabel('number of success', fontsize=15) plt.ylabel('probability', fontsize=15)
京子ちゃんを当てに行く場合、250回まわしても1回も当たらない確率は80%弱もあることが分かりました。 250回まわして当たる回数の期待値は、
n*p_kyoko
0.25
分布をみると1回も当たらない確率が80%近いのに、期待値を計算すると当たる確率は25%でした。
このような偏った分布の場合では、平均値の計算は適さないです。
今回は以上になります。