離散分布

Python を使った統計学入門

Maggie Matsui

Content Developer, DataCamp

サイコロを振る

六面体のサイコロ

Python を使った統計学入門

サイコロを振る

サイコロの各面は1/6の確率

Python を使った統計学入門

営業担当者を選ぶ

ボックス内の名前、それぞれ25%の確率

Python を使った統計学入門

確率分布

ある状況で起こりうる各結果の確率を表す

サイコロの各面が出る確率は1/6

期待値: 確率分布の平均

サイコロで出る目の期待値 = $(1 \times \frac{1}{6}) + (2 \times \frac{1}{6}) +(3 \times \frac{1}{6}) +(4 \times \frac{1}{6}) +(5 \times \frac{1}{6}) +(6 \times \frac{1}{6}) = 3.5$

Python を使った統計学入門

確率分布の可視化

1から6までの各数に対して高さが1/6の棒がある棒グラフ。

Python を使った統計学入門

確率 = 面積

$$P(\text{サイコロで出る目}) \le 2 = ~?$$

1と2のバーが強調表示されている

Python を使った統計学入門

確率 = 面積

$$P(\text{サイコロで出る目}) \le 2 = 1/3$$

1/6 + 1/6 = 1/3

Python を使った統計学入門

改造サイコロ

6面のサイコロ、3つの点がある面が2つ

改造サイコロで出る目の期待値 = $(1 \times \frac{1}{6}) +(2 \times 0) +(3 \times \frac{1}{3}) +(4 \times \frac{1}{6}) +(5 \times \frac{1}{6}) +(6 \times \frac{1}{6}) = 3.67$

Python を使った統計学入門

不均一な確率の可視化

改造サイコロの確率分布。 1、4、5、6のバーの高さは1/6、2のバーの高さは0、3のバーの高さは1/3

Python を使った統計学入門

面積を足す

$$P(\text{改造サイコロで出る目}) \le 2 = ~?$$

1/6 + 0

Python を使った統計学入門

面積を足す

$$P(\text{改造サイコロで出る目}) \le 2 = 1/6$$

1/6 + 0

Python を使った統計学入門

離散型確率分布

離散的な結果の確率を表す

サイコロ

サイコロのプロット

             _**離散一様分布**_

改造サイコロ

改造サイコロのプロット

Python を使った統計学入門

離散分布からのサンプリング

print(die)
  number      prob
0      1  0.166667
1      2  0.166667
2      3  0.166667
3      4  0.166667
4      5  0.166667
5      6  0.166667
np.mean(die['number'])
3.5
rolls_10 = die.sample(10, replace = True)
rolls_10
  number      prob
0      1  0.166667
0      1  0.166667
4      5  0.166667
1      2  0.166667
0      1  0.166667
0      1  0.166667
5      6  0.166667
5      6  0.166667
...
Python を使った統計学入門

標本の可視化

rolls_10['number'].hist(bins=np.linspace(1,7,7)) 
plt.show()

10回のロールのヒストグラム

Python を使った統計学入門

標本分布と理論分布の比較

10回振った場合

10回振った場合のヒストグラム

np.mean(rolls_10['number']) = 3.0

理論確率分布

サイコロの確率分布

mean(die['number']) = 3.5

Python を使った統計学入門

より大きな標本

100回振った場合

100回振った場合のヒストグラム

np.mean(rolls_100['number']) = 3.4

理論確率分布

サイコロの確率分布

mean(die['number']) = 3.5

Python を使った統計学入門

さらに大きな標本

1000回振った場合

1000回振った場合のヒストグラム

np.mean(rolls_1000['number']) = 3.48

理論確率分布

サイコロの確率分布

mean(die['number']) = 3.5

Python を使った統計学入門

大数の法則

標本サイズが大きくなるほど、標本平均は期待値に近づく

標本サイズ 平均
10 3.00
100 3.40
1000 3.48
Python を使った統計学入門

練習しましょう!

Python を使った統計学入門

Preparing Video For Download...