スポンサーリンク

【Python 数学】確率分布にしたがった乱数とは?について、サクッとわかりやすくまとめました【Python 入門】

スポンサーリンク
python numpy np random randn normal loc scale size 2 numpy
スポンサーリンク
スポンサーリンク
スポンサーリンク

NumPy は、Python で統計解析やデータ分析などで、

データ加工や演算をスムーズに行うためのライブラリです。

ディープラーニングなどの人工知能や機械学習、

時系列分析などでも頻繁に使われます。

NumPy を使いこなすことで、

Python よりもサクッと実装でき、プログラミングが加速させることができます。

データ分析や統計モデリングなどでは、確率分布を扱う機会が多くあります。

NumPyでは、確率分布にしたがった乱数を生成する機能があります。

なんらかの確率分布にしたがったデータを生成することで、

現実を確率論の世界にモデル化して、シミュレーションすることも可能です。

 

とはいっても、

  • 確率分布にしたがった乱数ってなに?

といった方も多いかと思います。

 

そこで本記事では、

  • 確率とは?
  • 確率分布とは?
  • 乱数とは?
  • 確率分布にしたがった乱数とは?

といった内容について、

初学者の方にもわかりやすいように、サクッと、まとめたいと思います。

スポンサーリンク

【Python 数学】確率分布にしたがった乱数とは?について、サクッとわかりやすくまとめました【Python 入門】

「確率」とは?

確率 例 サイコロ

「確率」は、中学数学で出てきます。

その定義では、

確率とは、注目している場合の数を、すべての場合の数で割った値

となっています。

 

サイコロの例がとてもシンプルな例になります。

3が出る確率を考えるとします。

注目しているのは3が出る場合です。

これは、3が出る時の1通りです。

すべての場合の数は、1から6までの6通りです。

(ここでは、サイコロの目はすべて同じように出ると仮定されています)

なので、3が出る確率は

1 / 6

となります。

 

「確率分布」とは?

確率 分布 例

”確率”は上で説明しましたので、

”分布”について説明しますね。

「分布」とは

分布というのは、

例えば、

  • タヌキは日本全体に分布している

のような使い方をします。

注目する日本全体を、

47都道府県など全体を分解した指標で考えてみます。

北海道 ・・・ いる

青森県 ・・・ いる

・・・

沖縄県 ・・・ いる

のように、すべている、となったら、

日本全土に分布している

と言えます。

 

例えば、

キツネは北海道と東北に分布している

という場合には、

北海道 ・・・ いる

青森県 ・・・ いる

・・・

福島県 ・・・ いる

新潟県 ・・・ いない

栃木県 ・・・ いない

・・・

沖縄県 ・・・ いない

という状態になります。

この状態を指して、

キツネは北海道と東北に分布している

という表現をします。

 

以上から、

分布とは、

全体を分解した場合をすべて考えて、

それぞれどういう状態か網羅して表現したもの

と言えます。

 

 

確率分布とは?

上のタヌキとキツネの分布の例では、

47都道府県では、{いる・いない} の2つの状態しかありませんでした。

47都道府県の状態を、それぞれ確率で表して考えてみます。

仮に全国でタヌキが100匹いるとします。

北海道に1匹いるとすると、北海道にいる確率は 1/100

青森に2匹いるとすると、青森にいる確率は 2/100

・・・

沖縄に3匹いるとすると、沖縄にいる確率は 3/100

と考えることができます。

分布のそれぞれの状態が確率で表現されたわけです。

 

 

ちなみに、確率は、すべての場合を足すと1になります。

例えば、サイコロの出る目の確率を全部足すと1です。

  • 1が出る確率 6分の1
  • 2が出る確率 6分の1
  • 3が出る確率 6分の1
  • 4が出る確率 6分の1
  • 5が出る確率 6分の1
  • 6が出る確率 6分の1

これらを全部足すと1になりますよね。

 

今回の例だと、

  • 北海道にいる確率 1/100
  • 青森にいる確率     2/100
  • ・・・
  • 沖縄にいる確率   3/100

これら全部を足すと1になるわけです。

 

  • 確率分布は、全確率1を、それぞれの可能性に分配している

ということが言えます。

 

 

以上から、

確率分布」とは、それぞれの可能性(状態)を網羅して、それぞれの可能性が起こる確率も合わせてまとめたもの

と言えます。

 

 

乱数とは?

乱数 例 乱数列 数列 数

乱数とは、乱れた数と書きます。

逆に乱れていない数というのは、規則的な数になります。

例えば、1、2、3、4、5・・・

といった数列は、規則的ですよね。

こういうのは乱れていない数です。

 

乱れた数とは、規則が見られない数になります。

5、2、9、−2、1、102、3・・・

のような列は、規則性がなさそうです。

こういう規則性がない数列を乱数列と言います。

乱数列の1つひとつの数字を乱数と呼びます。

 

 

 

確率分布にしたがった乱数とは?

”確率分布にしたがう”という意味を説明しますね。

上のタヌキの例では、

北海道でタヌキがいる確率は、1/100

青森県でタヌキがいる確率は、2/100

でした。

確率分布にしたがって、タヌキを見つける

というのは、

例えば、北海道で3回見つけ、青森では6回見つけることを意味します。

青森の方が、確率が2倍あるからです。

確率分布にしたがわないとすると、

例えば、北海道で3回見つけ、青森では1回見つける

というイメージになります。

 

数字を生成することを考えます。

1を生成する確率が1/100

2 を生成する確率が2/100

・・・

のように、数字を生成する確率分布がわかっているとします。

“この確率分布にしたがって数字を生成する”とは、

1が3回出ているなら、2は6回出ている

のように、

数字の2が数字の1より2倍の確率で出ることを反映した数字の出方のことを言います。

 

ここでは数字の1と2だけ考えましたが、

数字は無限にあります。

この無限にある数字の出る確率がそれぞれわかっている状態だとします。

数字が出る確率分布がわかっているわけです。

 

 

確率分布にしたがう乱数とは

確率分布にしたがって、数字をランダムに生成することです。

生成する確率が高い数字はたくさん生成され、

生成する確率が低い数字はあまり生成されないわけです。

例えば、

正の数は出る確率が高く、

負の数は出る確率が低い

ような確率分布があるとします。

この確率分布にしたがって乱数を生成すると、

正の数が多く、負の数が少ない乱数列が生成されます。

例えば、{ 6、1、9、−3、5、8、9、2・・・}

のようなものが生成されます。

 

 

 

統計学や統計モデリング、データ分析などでは、

様々な確率分布を使います。

  • 正規分布
  • 二項分布
  • ベータ分布
  • ガンマ分布
  • ポアソン分布
  • カイ2乗分布

など様々なものがあります。

それぞれ違った分布ですが、考え方は同じです。

それぞれの値と、その値が出る確率の関係が

数式で表現されています。

その数式にしたがって乱数を生成すれば、

その確率分布にしたがった乱数を生成することができます。

次回は、Python NumPy で確率分布にしたがった乱数の生成方法について、ご紹介したいと思います。

(SNSなど登録しておくと見逃さないかと思います。)

 

 

というわけで、本記事では、

  • 確率とは?
  • 確率分布とは?
  • 乱数とは?
  • 確率分布にしたがった乱数とは?

といった内容について、

初学者の方にもわかりやすいように、サクッと、まとめました。

Python 難易度 プログラミング インプット アウトプット 入門 初心者

 

ちなみに、乱数の生成方法については、以下の記事で紹介しています↓

【Python NumPy random rand】ベクトル・行列の生成・初期化方法(7):1次元配列(ベクトル)・乱数数列の生成方法(random rand randint seed)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】

 

 

 

こちらもございます↓

 

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
error: Content is protected !!
タイトルとURLをコピーしました