どせいたんさき。

ナスダヨー

『Change of Variable』 - シミュレーション編

目的

Practical Statistics for Astronomers という書籍に以下のような演習問題がある.

Suppose that φ is uniformly distributed between zero and 2π. Find the distribution of sinφ. How could you find the distribution of a sum of sines of independent random angles?

Welcome to the Solutions site for Practical Statistics for Astronomers

これを解く.公式の解答ではフーリエ変換を用いて分布関数の足し算をしているのだけど,このエントリではとりあえず乱数を使ったシミュレーションで解答と同じような分布関数が得られるかどうかを確認する.

解答

Octave で乱数を生成する.

a = 2*pi*rand(5e4,6); # random numbers                                          
s = sin(a);           # convert by sine                                         

x = linspace(-2,2,50)';    # bin                                                
y = cumsum(s,2)/diag(1:6); # cumulative mean                                    
z = histc(y,x);            # histogram                                          
z = z/trapz(x,z(:,1));     # normalize                                          

サイズが 50,000 の乱数を変換して区間 [-2,2] を 50 等分した bin に詰め込んだ.あとは gnuplot で適当にプロットすると以下のようになる.元々の分布は正規分布からは激しく逸脱した形をしているが 6 つ足し合わせるだけでかなり正規分布に近い形になる.おそらく分布が左右対称なので収束が速いのだと思う.



   
   
   

参考資料