統計検定
手計算が
結果を
numpy.random.binomial を 使う
実際に 試行する
numpy.random.binomial で、
以下、
import numpy as np n, p = 36, .5 # 36回 コインを投げた場合、表or裏が出る回数 。 1000セット実行する 。 s = np.random.binomial(n, p, 1000) print(s)
[22 16 20 16 16 19 16 24 19 17 16 22 12 17 19 23 17 14 16 17 21 19 15 22 21 21 21 14 19 16 11 18 18 16 20 17 21 18 16 17 14 14 21 14 15 23 19 16 18 19 18 20 16 19 16 13 23 17 16 19 16 16 17 16 15 26 19 14 17 20 22 14 11 20 19 17 20 17 14 19 20 17 21 18 18 18 25 15 13 20 20 24 17 18 16 20 16 18 22 20 20 20 21 14 28 19 17 15 21 16 19 14 25 13 17 16 15 16 13 19 16 20 22 17 21 15 18 19 14 18 21 19 19 15 20 13 20 16 16 16 20 19 21 16 22 24 17 21 23 12 18 17 17 18 18 18 13 20 12 18 18 17 18 20 13 21 16 19 21 21 16 15 18 11 18 19 19 17 10 19 15 18 16 17 18 17 20 21 21 17 11 16 20 17 21 20 20 13 19 17 19 16 15 17 21 21 17 14 18 14 17 20 17 19 16 13 18 16 20 22 22 14 15 21 15 13 18 17 21 14 17 14 17 19 17 16 17 17 15 16 14 18 15 16 20 14 11 15 13 22 17 20 14 23 17 18 17 21 20 23 16 27 21 16 20 21 14 14 18 19 19 16 16 15 19 18 18 20 23 20 21 17 12 22 15 23 20 20 13 15 20 18 23 18 15 17 20 18 19 16 16 18 20 18 19 17 19 18 19 19 15 18 17 13 19 15 11 18 19 17 19 16 15 18 18 23 20 13 17 10 17 15 20 17 17 15 17 14 18 20 17 18 17 18 19 16 16 21 16 19 20 21 21 15 18 19 17 21 18 17 16 19 15 21 16 18 17 21 19 19 15 19 20 11 20 17 17 15 17 19 17 17 20 18 23 13 11 17 16 15 25 14 16 20 22 18 18 17 19 19 14 19 20 17 16 20 16 17 17 14 18 24 17 17 21 13 16 22 24 18 19 16 18 18 18 21 20 20 20 16 22 16 17 18 13 16 18 19 21 13 19 21 16 22 24 15 21 15 18 19 19 22 19 17 23 12 16 20 20 20 19 15 27 17 14 17 20 18 16 20 15 15 23 15 14 19 20 19 18 19 22 17 19 18 18 24 15 17 12 17 16 15 16 12 13 16 17 17 16 17 23 20 18 16 22 18 21 14 16 17 24 18 17 22 18 19 17 16 19 23 13 21 18 19 18 20 17 21 19 19 20 18 18 14 16 17 21 21 12 18 20 20 20 20 17 19 16 21 14 22 13 20 18 21 20 15 22 24 17 18 20 16 16 18 16 14 16 14 20 21 18 23 16 22 17 22 21 18 20 13 15 13 17 24 17 18 22 16 19 16 16 20 20 15 19 23 20 16 18 21 20 19 17 15 19 14 19 15 19 15 19 19 18 18 16 23 21 12 19 16 10 21 20 17 18 19 22 26 19 20 14 17 18 19 16 17 16 15 19 16 15 17 18 17 25 17 26 16 21 17 9 18 15 20 24 16 19 25 16 26 16 18 16 21 20 14 18 23 20 14 16 26 14 16 18 17 21 12 22 12 18 23 19 15 17 17 19 20 18 23 19 21 23 17 14 21 17 21 15 15 20 19 20 20 16 21 17 13 16 19 18 15 16 18 12 23 15 17 20 15 16 16 17 17 17 23 17 15 11 17 15 17 20 17 18 20 13 17 18 21 15 11 15 17 12 20 16 12 17 13 16 15 19 18 13 13 20 18 20 14 23 9 19 19 18 20 21 20 12 16 16 17 15 14 18 20 19 18 17 16 18 18 19 18 19 22 17 22 14 26 12 14 20 19 21 15 18 21 19 15 20 18 18 14 13 14 19 20 20 13 19 13 14 14 20 12 20 17 17 19 14 21 20 16 21 18 15 15 19 18 16 17 20 17 20 17 19 19 16 20 16 18 19 24 14 17 19 21 16 18 22 20 23 18 16 20 18 18 14 16 18 17 15 20 17 15 20 22 20 18 23 18 20 16 18 13 20 27 22 23 12 19 19 17 19 17 13 21 16 18 18 17 19 21 18 16 17 19 21 23 16 16 22 17 17 16 17 11 15 20 17 23 18 20 18 18 18 21 14 17 19 19 12 26 19 16 22 21 22 19 18 17 16 17 12 15 15 16 20 14 21 17 16 13 19 13 17 25 14 19 20 22 16 25 17 23 22 15 14 22 18 21 15 17 14 16 15 21 23 20 23 14 14 18 14 17 19 18 18 20 20 18 15 15 19 22 16 16 18 16 21 13 18 14 15 19 21 17 15 17]
実際に 試行した 結果の 確率を 求める。
np.random.binomial の
ここでは、
import numpy as np n, p = 36, .5 # 36回コインを投げた場合、表が24回以上出る確率を出力 s = sum(np.random.binomial(n, p, 1000) >= 24)/1000. print(s)
0.036
発生確率は、
scipy.stats.binom を 使う
確率密度関数の グラフを 描画する
scipy.stats.binom
を
%matplotlib inline import numpy as np import matplotlib.pyplot as plt import seaborn as sns from scipy.stats import binom # matplotlib の設定を調整 plt.rcParams['font.family'] = 'IPAPGothic' #全体のフォントを設定 plt.rcParams["figure.figsize"] = [12, 6] plt.rcParams['font.size'] = 20 #フォントサイズを設定 default : 12 plt.rcParams['xtick.labelsize'] = 15 # 横軸のフォントサイズ plt.rcParams['ytick.labelsize'] = 15 # 確率 p = 0.5 # 試行回数 N = 36 # 試行回数中の発生回数 (配列) k = np.arange(N+1) # グラフにプロット fig, ax = plt.subplots(1,1) ax.plot(k, binom.pmf(k, N, p), 'bo', ms=8) ax.vlines(k, 0, binom.pmf(k, N, p), colors='b', lw=1, alpha=0.2) ax.set_xlabel('回数') ax.set_ylabel('確率') ax.set_title('coin toss') ax.set_ylim((0,0.15))
(0, 0.15)
実際に 試行した 結果の 確率を 求める。
コインを
%matplotlib inline import numpy as np import matplotlib.pyplot as plt import seaborn as sns from scipy.stats import binom # 確率 p = 0.5 # 試行回数 N = 36 # 試行回数中の発生回数 (配列) k = np.arange(24, N + 1) # binom.pmf の結果の配列の合計を算出 # コイントスの試行は、離散型の確率密度関数になるので、この計算方法で問題ないと思う print("probability:" , sum(binom.pmf(k, N, p)))
probability: 0.0326226676116
参考
以下、
二項分布と
多項分布の 説明
コイン投げから分かる 二項分布。 正規分布や ポアソン分布との 関係性と 近似に ついて | アタリマエ!
二項分布と多項分布の 初歩 | コード7区 sum関数の
使い 方
code161numpy.random.binomial の
使い 方
numpy.random.binomial — NumPy v1.14 Manualscipy.stats.binom の
使い 方
scipy.stats.binom — SciPy v1.1.0 Reference Guide [Lec92_二項分布
以上です。
コメント