「正規分布に従った乱数が欲しいんだけど……。まあなんかスクリプトでも書くか」
「それエクセルで出来るよ」
「R使えよ」
PRML 読書会に向けて3章予習中。
手を動かさないと理解できない人なので、「σ=0.2 のガウスノイズを加えて人工的な訓練データを」なんて、いやーんなことを書かれると、はたと困ってしまう。
スクリプトとかじゃあなく、なんかもう少し手触りを求め、あえてエクセルを使う。なんとかっこいい。
エクセルで N(0,1) な乱数の作り方というのはいくつかあるのだが、まとまっているところがなかったので小ネタ風にまとめてみた。
極限中心定理
[0,1] の一様乱数が平均 0.5、分散 1/12 であることと極限中心定理を用いて。
=RAND()+RAND()+RAND()+RAND()+RAND()+RAND()+RAND()+RAND()+RAND()+RAND()+RAND()+RAND()-6
ヒストグラムを書くと、これがなかなかきれいに分布してくれるのがわかって嬉しくなるが、略。
Box-Muller
A | B | |
---|---|---|
1 | =RAND() | =SQRT(-2*LN(A1))*SIN(2*PI()*A2) |
2 | =RAND() | =SQRT(-2*LN(A2))*COS(2*PI()*A1) |
必ず2つ組になるのが、ちょっと面倒。