Pythonで「二項分布を生成する2つの方法」を詳しく解説!

PRについて
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク
※このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
Pythonで「二項分布を生成する2つの方法」を詳しく解説! 統計学
Pythonで「二項分布を生成する2つの方法」を詳しく解説!
統計学入門

このページでは統計の基本となる二項分布について全部で2つのモジュールで取り扱っていきます。

ごまこ
ごまこ

今日はPythonで二項分布を扱う方法を知りたいんです!
二項分布を取り扱うためのモジュールはどういったものがあるんですか?

ごまお
ごまお

みなさんがよく知っているnumpyやscipyなどの科学技術計算を行うためのライブラリでも扱うことができます!
今回は二項分布に従うデータを生成する方法を勉強していきましょう!

二項分布とは、ある試行を n 回行った時に、成功する回数が X 回となる確率分布のことです。

また、Xが二項分布に従うとき、試行回数nや1回の成功確率pは確率分布を特徴づける値となります。

Pythonでは、さまざまなライブラリを使って、簡単に二項分布に従うデータを生成することができます。

以下では、それぞれのライブラリの使い方を例とともに説明します。

二項分布に従うデータを生成する2つの方法

Pythonで二項分布に従うデータを生成する方法は2つあります。

  • numpy.random.binomial関数でデータ生成する方法
  • scipy.stats.binomモジュールでデータ生成する方法

生成したデータを元にグラフの描画も行います。それぞれ順番に説明していきます。

numpy.random.binomial関数でデータ生成する方法

numpyは科学計算を行うためのライブラリで、二項分布からランダムな値を生成するnumpy.random.binomial()関数を提供しています。

import numpy as np
import matplotlib.pyplot as plt

# 試行回数nと確率p
n, p = 100, 0.5

# n回の試行を1000回繰り返した場合の
# それぞれの成功回数s
s = np.random.binomial(n, p, 1000)

#ヒストグラムを描画
plt.hist(s)
plt.show()
B(100, 0.5)を1000回繰り返した成功回数のヒストグラム
B(100, 0.5)を1000回繰り返した成功回数のヒストグラム

scipy.stats.binomモジュールでデータ生成する方法

scipyは科学技術計算を行うためのライブラリで、二項分布を扱うためのscipy.stats.binomモジュールを提供しています。

このモジュールには、二項分布に関連する様々な関数が含まれています。

例えば、rvs()関数を使ってランダムな値を生成したり、pmf()関数を使って確率質量関数を計算したり、cdf()関数を使って累積分布関数を計算したりできます。

from scipy.stats import binom
import matplotlib.pyplot as plt

# 試行回数nと確率p
n, p = 100, 0.3

# 確率質量関数
x = range(n+1)
pmf = binom.pmf(x, n, p)

# n回の試行を1000回繰り返した場合の
# それぞれの成功回数s
s = binom.rvs(n, p, size=1000)

#ヒストグラムを描画
plt.hist(s)
plt.show()
B(100, 0.3)を1000回繰り返した成功回数のヒストグラム
B(100, 0.3)を1000回繰り返した成功回数のヒストグラム
ごまこ
ごまこ

離散型の二項分布を表示できました~!
二項分布を表示するだけでもいろいろな方法があるんですね!

ごまお
ごまお

今回グラフの表示にはmatplotlibを用いましたが、seabornなど他のグラフ描画モジュールもありますね!
詳細なグラフの設定を含めて目的に合わせて使い分けられると良いと思います!

まとめ

この記事では、Pythonで二項分布に従うデータを生成する方法について2つの方法を紹介しました。

どちらの方法も、生成したデータを元にヒストグラムを描画することで、二項分布の形状を確認することができます。

また、scipy.stats.binomモジュールでは、確率質量関数や累積分布関数を計算する関数も提供されています。

これらの関数を使って、二項分布の特徴を詳しく調べることもできます。

どちらの方法もプログラム自体は簡単で使いやすいので、目的に合わせて使い分けてみてください!

このサイトの記事一覧へは以下へアクセス!

統計検定 2級
統計学
ゴマフリーダムをフォローする

コメント

達人に学ぶDB設計 徹底指南書

最短コースでわかる ディープラーニングの数学

あたらしい機械学習の教科書 第3版

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

タイトルとURLをコピーしました