默认情况下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