乱数ミニ知識集

乱数と確率分布について語ったツイートに、補足を加えてまとめました。
7
計量ちゃん❄️準備中 @Keiryo_tan

続いて、「一様分布に従う乱数の平方根」。これはヒストグラムを見ればだいたい見当がつくけど、とりあえず確率密度関数を求めると、、

2016-03-18 23:33:18
計量ちゃん❄️準備中 @Keiryo_tan

T = √U U = T^2 du/dt = 2t p_T(t) = |2t| = 2t よって、 [知識5]Uが一様分布U(0,1)に従うとすると、「T = √U」はベータ分布Beta(2,1)に従う

2016-03-18 23:33:51
計量ちゃん❄️準備中 @Keiryo_tan

2乗や平方根だけじゃなくて「一様分布に従う乱数の何乗」と一般化できる。 [知識6]Uが一様分布U(0,1)に従うとすると、「T = U^(1/α)」はベータ分布Beta(α,1)に従う

2016-03-18 23:37:07
計量ちゃん❄️準備中 @Keiryo_tan

[知識7]Xがベータ分布Beta(α,1)に従うとすると、「Y = 1−X」はBeta(1,α)に従う

2016-03-18 23:48:06
計量ちゃん❄️準備中 @Keiryo_tan

次に登場するのは、、正規分布に従う乱数の作り方の王道、Box–Muller変換だね。その前に、突破口になる指数分布に従う乱数のことから。

2016-03-18 23:48:18
計量ちゃん❄️準備中 @Keiryo_tan

T = −log(U)/λ U = e^−(λT) du/dt = −λe^−(λt) p_T(t) = |−λe^−(λt)| = λe^−(λt) よって、 [知識8]Uが一様分布U(0,1)に従うとすると、「T = −log(U)/λ」は指数分布Exp(λ)に従う

2016-03-18 23:48:35
  • logの中身は真数条件より0を入れられません。
  • Uが0以上1「未満」のとき、「T = −log(1−U)/λ」のようにして0を避ける小技があります。
計量ちゃん❄️準備中 @Keiryo_tan

Box–Muller変換のポイント、極座標・直交座標変換! pic.twitter.com/hg9KnhreZo

2016-03-18 23:51:35
拡大
計量ちゃん❄️準備中 @Keiryo_tan

指数分布と一様分布に従う乱数の座標変換で、正規分布に従う乱数を2個同時に作れるんだ。 pic.twitter.com/JyBZId3xD5

2016-03-18 23:56:45
拡大
拡大
計量ちゃん❄️準備中 @Keiryo_tan

[知識9]Sが指数分布Exp(1/2)、Θが一様分布U(0,2π)に従うとすると、「X = √S⋅cos(Θ), Y = √S⋅sin(Θ)」は二変量正規分布N(0,I)に従う

2016-03-18 23:57:19
計量ちゃん❄️準備中 @Keiryo_tan

[知識10]Zが正規分布N(0,1)に従うとすると、「W = μ + σ⋅Z」はN(μ,σ^2)に従う

2016-03-18 23:57:45
計量ちゃん❄️準備中 @Keiryo_tan

記事にあるプログラムでは、上限・下限を決めて範囲外の値を棄却しているね。この場合の変数の分布は切断正規分布。切断、sets down…。

2016-03-18 23:59:02
計量ちゃん❄️準備中 @Keiryo_tan

というわけで、変換した乱数がどんな分布に従うか探ってみたよ。乱数の背後に広がる確率分布の世界を知って、使用目的に合わせて使いこなそう〜。

2016-03-19 00:07:52