rnorm
関数は、標準正規分布乱数を生成するためにどのアルゴリズムがデフォルトで使用されていますか?rnorm関数で使用されているアルゴリズム
答えて
?RNGkind
を参照してください。デフォルトでは、反転アルゴリズムです:
normal.kind
は "Kinderman-たRamage"、 "バギーKinderman-たRamage"(set.seed
のためではない )、 "アーレンス・ディーター"、 "ボックス・ミュラー"、 "反転" することができ(デフォルトは )、または「ユーザー指定」です。 (反転については、qnorm
の参考文献を参照してください)1.7.1より前のバージョンで使用されているKinderman-Ramageジェネレータは、いくつかの近似誤差があり、古い結果の再現にのみ使用する必要があります。 "Box-Muller"ジェネレータは、法線のペアが生成され、順番に返されるのでステートフルで です。 状態が選択されると(現在の ノーマルジェネレータであっても)状態がリセットされ、種類が変更されたときに状態がリセットされます。
あなたが現在RNGkind()[2]
を見て、設定されているものを見つけることができます
RNGkind(normal.kind = "Box-Muller")
でアルゴリズムを変更することができます。
もう1つの答えで十分ですが、もう少し質問があります。特に私は文書のどこにも* "Inversion"
アルゴリズムがあるので、source codeに分割しました。これは他の可能なアルゴリズムを起源とする論文を学術的に参照し、正確に何が行われているか把握しています。
case INVERSION:
#define BIG 134217728 /* 2^27 */
/* unif_rand() alone is not of high enough precision */
u1 = unif_rand();
u1 = (int)(BIG*u1) + unif_rand();
return qnorm5(u1/BIG, 0.0, 1.0, 1, 0);
だから、それがベースにデフォルト"Inversion"
アルゴリズムは非常に長い浮動小数点数を生成しそうですし、正規分布のためのCDF関数であるqnorm5
機能に送信します。
普通のCDFでも逆CDFでもクローズドフォームがないので、qnorm5
の機能については、私はソースコードのように幸運を覚えていませんでしたが、すなわち、Beasley, J. D. and S. G. Springer (1977)およびWichura, M.J. (1988)。前者はCDFの小さな分位数に使用され、後者は大きな(z>7
程度)のために使用されます。
(この執筆時点で)このアルゴリズムはshared by the Julia languageであると思われ、R
によって使用されるqnorm5
コードも共有されています。
*振り返ってみると、上で参照されている?qnorm
にはWichuraが記載されています。それでも、このスレッドで物事を綴ることは価値があると思います。
ありがとうございました!私はこの答えを探していた! –
- 1. Rに別の `` rnorm`の引数として `` rnorm`を入れるのはどういう意味ですか?
- 2. System.Security.Cryptography.RNGCryptoServiceProviderクラスで使用されているアルゴリズムはC#
- 3. djiファントム4のビジュアルトラッキングで使用されているアルゴリズム
- 4. どのようなアルゴリズムがObjCの[NSString containString:]でこの関数で使用されていますか?
- 5. 関数で使用されている動的配列
- 6. Julia - UndefVarError関数で使用されていて、REPLで使用されていない
- 7. システムコール - カーネルで使用される関数
- 8. アルゴリズムのソート関数の使い方(C++)
- 9. 内部の関数で使用される関数の引数にPythonが渡されていますか?
- 10. JavascriptでscrollTo()関数が使用されているボタンに関する問題
- 11. Androidのスペルチェッカーで使用されているアルゴリズムはどれですか?
- 12. RK4アルゴリズムでラムダ関数を使用する
- 13. BitmapData.draw関数で使用されるスケーリング関数?
- 14. pythonのrandom.randint関数でどのアルゴリズムが使われていますか?
- 15. 関数が使用されている、テンプレートかどうか?
- 16. マルチスレッドプログラムで使用されているAPIのリエントラントでない関数
- 17. 関数で使用される変数の順序についての説明
- 18. CSSは別の関数で呼び出された関数で使用されていません
- 19. 他の関数で使用されているExcel再利用範囲
- 20. 関数呼び出しで値として使用される
- 21. 角2:すべてのコンポーネントで使用される関数
- 22. shutil.rmtreeで使用されていない関数パラメータを削除する方法
- 23. 再帰関数によって使用されるグローバル変数
- 24. Perlはどのようなハッシュ関数/アルゴリズムを使用していますか?
- 25. 変数の使用法と依存関係をバックトラックするアルゴリズム
- 26. ベクトルのアルゴリズムからのfind関数を使用する
- 27. C++ BinarySearchアルゴリズム(.binファイル)を使用する関数
- 28. constexpr関数本体内の評価されていないコンテキストでのみ使用される引数
- 29. 複合関数で計算されたアルゴリズムの複雑度
- 30. サブフォルダコントローラで定義されているフォルダ内のコントローラで関数を使用
標準正規分布乱数を生成するためにrnorm関数がmvtnormパッケージで使用されていれば、ありがとうございます。 – Klaus
@Klausはい、 'mvtnorm'の' rmvnorm'は同じ 'rnorm'関数を使います。 –
デフォルトのオプションは使用していますか? – Klaus