確率(probability)とは
・ある試行を同じ条件で何度も繰り返したときにある事象が起こる相対頻度の極限値
ex) サイコロを例にすると
ある試行・・・サイコロを振る
ある事象・・・"1"が出る
相対頻度・・・"1"が出た回数÷サイコロを振った回数
相対頻度を無限回繰り返したものが確率になります。
確率変数(random variable)
・値が確率的に変動する変数
・通常$X$で表す
・それぞれの値に確率$P(X)$が対応
サイコロの目 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
確率$P(X)$ | 1/6 | 1/6 | 1/6 | 1/6 | 1/6 | 1/6 |
確率分布(probability distribution)
・確率がどのように分布しているのかを表したもの
・確率変数は、確率分布から生成された値だとイメージする
サイコロのように全ての確率変数の確率値が同じ値である確率分布のことを一様分布という。(サイコロの目は一様分布に従う)
Pythonで実践
確率分布
・ stats.<確率分布>.<メソッド>
確率分布とメソッドには様々なものが用意されているのですが、今回は一様分布からランダムにデータを生成してみましょう。
・stats.randint.rvs(low, high)
randintは整数(離散型)を生成します。
from scipy import stats
# random variates(rvs):確率変量
stats.randint.rvs(1, 7)
# ※下記のように書くこともできます。
# stats.randint(1, 7).rvs()
結果
3
サイコロのように、1〜6の整数がランダムに返ってきます。
また、連続した値を生成する確率分布を紹介します。
・stats.uniform.rvs(loc, scale)
stats.uniform(0, 1).rvs()
結果
0.2332625638624527
上記を実行すると、連続した値がランダムに返ってきます。
離散型確率変数と連続型確率変数
・とびとびの値をとる確率変数は、離散型確率変数
・連続の値をとる確率変数は、連続型確率変数
ex)
サイコロを振って出た目→離散型確率変数
関数$f_X(x)$を確率質量関数(PMF:Probability Mass Function)という
($f_X(x) = P(X = x)$)
ex)
ランダムに選んだ成人男性1人の身長→連続型確率変数
関数$f_X(x)$を確率密度関数(PDF: Probability Density Function)という
Pythonで実践
一様分布を描画してみましょう
・離散型:stats.randint(low, high).pmf(x)
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
# x軸を設定
x = np.arange(1, 7)
# y軸を設定
y = stats.randint(1, 7).pmf(x)
# 描画
plt.plot(x, y, 'o')
# 縦線を引く
plt.vlines(x, 0, y)
グラフを見ると、1, 2, 3, 4, 5, 6のときだけ確率があり、それ以外は確率が存在しないことがわかります。
では続いて、連続型の一様分布を描画してみましょう。
・連続型:stats.uniform(loc, scale).pdf(x)
# x軸を設定
x = np.linspace(-2, 2, 100)
# y軸を設定
y = stats.uniform(loc=0, scale=1).pdf(x)
# 描画
plt.plot(x, y)