gpt4 book ai didi

performance - R 与 Matlab : Explanation for speed difference for rnorm, qnorm 和 pnorm 函数

转载 作者:太空宇宙 更新时间:2023-11-03 19:18:49 27 4
gpt4 key购买 nike

我将内置 R 函数 rnormqnormpnorm 的性能与等效的 Matlab 函数进行了比较。

似乎 rnormpnorm 函数在 R 中比在 Matlab 中慢 3-6 倍,而 qnorm 函数是约在 R 中快 40%。我尝试使用 Rcpp 包通过使用相应的 C 库来加速 R 函数,这导致运行时间减少了约 30%,这仍然比 rnorm 的 Matlab 慢得多和 pnorm

是否有可用的包提供了一种在 R 中模拟正态分布随机变量的更快方法(除了使用标准 rnorm 函数)?

最佳答案

我在这里看到两个不同的问题,每个段落一个:

  • 是的,R 和 Matlab 等语言/系统之间存在差异。它的一部分与解释器、循环速度、函数调用速度等有关。Rcpp 可以在具有真正 JIT 编译器的 Matlab 方面提供帮助。我们在最近关于 RcppArmadillo 的论文中对卡尔曼滤波器的 Matlab、R 和 R+Rcpp 进行了比较。

  • 底层编译代码也存在差异,是的,R 并不总是具有更快的实现,因为 R Core(恕我直言)首先追求精度。 (并且 Rcpp 本身并没有帮助:我们只是调用 R 内部的东西。)这已经出现了,例如 Darren Wilkinson 开始的 MCMC 的 Gibbs Sampler 示例。我注意到 R 的 rgamma() 比其他系统慢得多。因此,为了更快地回答有关 N(0,1) 绘制的问题:我认为我们需要一个贡献的 Ziggurat 实现。这是目前速度更快的 N(0,1) 生成器之一,其他一些系统也在使用它。

关于performance - R 与 Matlab : Explanation for speed difference for rnorm, qnorm 和 pnorm 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14869610/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com