默認情況下rnorm
函數使用哪種算法來生成標準正態分佈的隨機數?rnorm函數使用哪種算法
回答
參見?RNGkind
。缺省值是反相的算法:
normal.kind
可以是 「Kinderman-拉梅奇」, 「越野車Kinderman-拉梅奇」(未 爲set.seed
), 「阿倫斯-迪特」, 「箱穆勒」, 「反轉」 (默認爲 )或「用戶提供」。 (關於反演,請參閱qnorm
中的參考文獻。)在1.7.1 (現在稱爲「Buggy」)之前版本中使用的Kinderman-Ramage發生器有幾個近似誤差,只應使用 複製舊結果。 「Box-Muller」生成器是 有狀態的,因爲法線對是按順序生成和返回的。 只要選擇了狀態(即使它是當前的正常發生器 )並且更改了種類,狀態也會重置。
您可以通過
RNGkind(normal.kind = "Box-Muller")
改變算法,可以找到什麼是目前通過觀察RNGkind()[2]
設置。
其他答案已經足夠,但留給我更多的問題;特別是我沒有看到文檔中的任何地方* "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"
算法生成一個很長的浮點數,然後將其發送到qnorm5
函數,它是用於正常分佈的CDF函數。
至於qnorm5
功能是如何工作的(假設沒有爲普通CDF也不逆CDF沒有封閉的形式),我沒有多少運氣破裂似乎是源代碼here,但他們提供進一步的學術參考文獻,即Beasley, J. D. and S. G. Springer (1977)和Wichura, M.J. (1988);前者通常用於CDF的小分位數,後者用於大型(大約z>7
)。
注意到(截止撰寫本文)此算法似乎是shared by the Julia language,它也共享R
使用的qnorm5
代碼也可能是有趣的。 *公平地說,回顧起來,Wichura在?qnorm
中被提及,上面引用了它。我認爲,在這篇文章中仍然有必要說明一些事情。
謝謝!我正在尋找這個答案! – 2017-07-09 00:16:27
- 1. python的random.randint函數中使用哪種算法?
- 2. SortBy在Spark中使用哪種算法?
- 3. scipy.optimize.leastsq使用哪種優化算法?
- 4. Matlab在SVD中使用哪種算法?
- 5. 找出使用了哪種CRC16算法
- 6. ProtectedData使用哪種加密算法?
- 7. CPU /編程語言使用哪種指數運算算法?
- 8. 哪種數據挖掘算法最好?
- 9. 使用哪種HTTP方法?
- 10. KVC使用哪種方法?
- 11. 使用哪種方法?
- 12. 使用rnorm生成隨機數
- 13. 用向量的方法調用rnorm
- 14. Floyd-Warshall算法中不允許使用哪種循環?
- 15. 我可以使用哪種算法進行quadrilater/cube檢測?
- 16. SSL使用哪種對稱密鑰算法?
- 17. Laravel 5.4 - auth使用哪種哈希算法?
- 18. 我應該使用哪種算法來更改/修改曲線
- 19. MD5散列算法使用哪種類型的轉換?
- 20. Opengl使用哪種三角測量算法?
- 21. 決定使用哪種機器學習算法
- 22. STL的列表使用哪種排序算法:sort()?
- 23. PHP使用哪種哈希算法session.hash_function默認混合
- 24. Chrome使用了哪種反鋸齒線繪製算法?
- 25. 在NHibernate中與多對多關係使用哪種算法
- 26. mysql使用哪種算法搜索表中的一行?
- 27. Connect 4應該使用哪種機器學習算法?
- 28. 在JSF中遍歷UIViewRoot時使用哪種算法?
- 29. 日期/時間存儲爲浮點,使用哪種算法?
- 30. 使用哪種算法爲學校生成時間表
謝謝,你知道嗎,如果mvtnorm包使用rnorm函數來生成標準正態分佈隨機數? – Klaus 2013-03-12 19:50:08
@Klaus是的,'mvtnorm'的'rmvnorm'使用相同的'rnorm'函數。 – 2013-03-12 20:03:42
他們使用默認選項? – Klaus 2013-03-12 20:06:32