[[20191217171912]] 『度数分布にしたがった乱数を発生させたい』(すー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『度数分布にしたがった乱数を発生させたい』(すー)

度数分布にしたっがた乱数を発生させる方法に関して質問です。
一様乱数の値を累積分布関数の逆関数に与えてやることにより、元々の度数分布にしたがう値を発生させる逆関数法での生成を考えています。

任意の確率分布に対して乱数を発生させたいのですが、VBAのプラグラムコードはどのように書けばよいのでしょうか?

< 使用 Excel:Office365、使用 OS:Windows2000 >


 例えばこんな感じです。
 例ではワークシート関数のNomr_Invを使いました。
 それ以外にもExcelのワークシート関数にはいくつかの確率関数が用意されていますが、
 「任意の累積分布関数の逆関数」が必要ならば、それは自分で作らないといけません。

    Sub sample()  ' 正規分布に従う乱数をA列に書き出す
      Randomize
      Avg = 0  ' 平均
      Stv = 1  ' 標準偏差
      For i = 1 To 1000
         Cells(i, 1) = WorksheetFunction.Norm_Inv(Rnd, Avg, Stv)
      Next
    End Sub
(´・ω・`) 2019/12/17(火) 18:17

考え方の参考にして下さい。
https://www.slideshare.net/teramonagi/r-14810107
(γ) 2019/12/17(火) 22:17

´・ω・`、γさん、ご回答ありがとうございます!

参考にしてやってみます!
(すー) 2019/12/18(水) 10:46


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.