この関数はどのようなアルゴリズムを採用しているのでしょうか?
正規乱数の生成には一般にボックス-マーラー法(極座標法)を用いることが多いようですが、MS-Exelもこれを採用しているのでしょうか。なければどのようなアルゴリズムかをご教示ください。
ご質問の意図は、少し判った気もしますが、今回のご質問にNORMINV は直接関係ないかと思います。
これがもし、NORMINV に対する引数によってこの関数自身が内部で乱数を発生するような機能があるのでしたらご質問文は正しく、まったくの私の見識不足ですので、ポイントはお返しいたします。
ご質問が
NORMINV(RAND(), 0.0, 1.0 )
のような使用法をおっしゃっているなら、それは単純に RAND 関数の仕様に関するご質問だと思います。
乱数のアルゴリズムを自作されたい場合は VBA を利用することで容易に実現できますが、RAND のアルゴリズムに関しては先に提示した Microsoft の URL にあるように EXCEL では線形合同法を利用しているようです。
補足や回答の不備のご指摘がある場合、コメントを有効にしていただければそちらで回答いたします。
私の勘違いでなければ、 NORMINV は与えられた標準偏差(σ)と平均値(μ)の正規分布から与えられた確率(第一引数)となる値を取得する関数で、内部で乱数を使用してはいないと思います(NORMDIST の逆関数ですね)。
御質問が、EXCEL の乱数発生に関するアルゴリズムであるとしたら、過去の質問が参考にならないでしょうか。
NORMINVの機能はご指摘のとおりですが、NORMINVの一つ目の引数に一様乱数を入れることで正規乱数の生成が可能です。
内部で一様乱数を処理して正規乱数を生成しているわけで、そこに一定の手順(アルゴリズム)が存在しており、問題はそれが何であるかを問うております。
ご質問の意図は、少し判った気もしますが、今回のご質問にNORMINV は直接関係ないかと思います。
これがもし、NORMINV に対する引数によってこの関数自身が内部で乱数を発生するような機能があるのでしたらご質問文は正しく、まったくの私の見識不足ですので、ポイントはお返しいたします。
ご質問が
NORMINV(RAND(), 0.0, 1.0 )
のような使用法をおっしゃっているなら、それは単純に RAND 関数の仕様に関するご質問だと思います。
乱数のアルゴリズムを自作されたい場合は VBA を利用することで容易に実現できますが、RAND のアルゴリズムに関しては先に提示した Microsoft の URL にあるように EXCEL では線形合同法を利用しているようです。
補足や回答の不備のご指摘がある場合、コメントを有効にしていただければそちらで回答いたします。
私の認識が中途半端で不明確な質問にもかかわらず、ご丁寧な回答感謝します。
Excelの一様乱数アルゴリズムが線形合同法であるというのは貴重な情報です。ありがとうございました。
一般に、ある確率分布関数の逆関数に対して、一様乱数を入力させますと、その確率分布関数に従う乱数が出力されることが知られています。
ありがとうございました。
私の認識が中途半端で不明確な質問にもかかわらず、ご丁寧な回答感謝します。
Excelの一様乱数アルゴリズムが線形合同法であるというのは貴重な情報です。ありがとうございました。