サンプルの生成で使うのは,以下のような関数です.
正規分布
- np.random.normal(loc = 0.0, scale = 1.0, size = None)
オプションのlocは期待値,scaleは標準偏差,sizeはサンプル数
- np.random.randn(d0, d1, d2, ...)
標準正規分布は,期待値0, 分散1の正規分布.(d0, d1, d2, ...) のサイズの配列に,標準正規分布からのサンプルを格納
一様分布
- np.random.uniform(low = 0.0, high = 1.0, size = None)
オプションのlowは最小値,highは最大値,sizeはサンプル数
区間[0, 1]上の一様分布
- np.random.rand(d0, d1, d2, ...)
(d0, d1, d2, ...) のサイズの配列に,区間[0, 1]上の一様分布からのサンプルを格納
Pythonでの実装は以下のようになります.
期待値1,標準偏差2の正規分布に従うデータを100個生成してみます.
>>> import numpy as np
>>> x = np.random.normal(1, 2, 100)
データの平均値を計算します.
>>> x.mean()
1.150042657481204
別の方法でデータの平均値を計算するには以下のようにします.
>>> np.mean(x)
1.150042657481204
当然,同じ値が得られます.
$| x - E[x] | \leq sd(x)$となるデータの割合を求めます.
>>> np.mean(np.abs(x - np.mean(x)) <= np.std(x))
0.67
$| x - E[x] | \leq 2 \times sd(x) $となるデータの割合を求めます.
>>> np.mean(np.abs(x - np.mean(x)) <= 2 * np.std(x))
0.98
0.98
上記の例のJupyter Notebookファイルは,GitHubのStatistics.ipynbの"Expected value and Variance"で見ることができます.
0 件のコメント :
コメントを投稿