- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我将内置 R 函数 rnorm
、qnorm
和 pnorm
的性能与等效的 Matlab 函数进行了比较。
似乎 rnorm
和 pnorm
函数在 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/
我想使用 pnorm 创建一个函数 a(v,x),但 pnorm 的标准差取决于 x。 R 返回错误:数学函数的非数字参数。 我对 R 很陌生,所以我真的不知道如何处理这个问题,但我没能在其他地方找到
我正在尝试规范化数据框中的一些数据。我想获取每个值并通过 pnorm 函数以及该值所在列的平均值和标准差运行它。使用循环,这就是我将如何写出我想要做的事情: #example data hist_da
我有一个使用正态分布函数 pnorm() 和 qnorm() 的归一化方法。我想改变我的逻辑,以便我可以使用经验分布而不是假设正态性。我已经使用 ecdf() 来计算经验累积分布,但后来意识到我开始编
我需要在我的 Rcpp 代码中包含来自 arma:: 的变量。但是我在尝试使用糖函数 pnorm 时遇到了问题。这是一个演示: #include #include // [[Rcpp::depen
有人可以告诉我 pnorm() 的最后两个参数是什么意思吗? set.seed(123) a <- pnorm(rnorm(10,0,1),0,1) # rnorm(n=10,mean=0,sd=1
谁能告诉我pnorm() 的最后两个参数是什么意思? set.seed(123) a <- pnorm(rnorm(10,0,1),0,1) # rnorm(n=10,mean=0,sd=1) an
This article描述了正常 CDF 的解析近似: 近似使用反正切函数,该函数也在数值上近似。我找到了 some discussions关于反正切函数的算法,它看起来很复杂。相比之下,sourc
我正在尝试使用 pnorm 和 qnorm 等函数用 Rcpp 编写一段 C++ 代码。我可以将这些的 Rcpp 糖版本用于向量,如 https://stackoverflow.com/a/97388
在尝试将 R 包 stats 中的 dnorm() 和 pnorm() 函数导入 Rcpp 时,我遇到了以下奇怪的行为。我将均值为 0 且标准差为 1 的 dnorm() 和 pnorm() 应用于观
我希望我重新措辞的问题现在符合 Stackoverflow 的标准。请考虑以下示例。我正在编写一个对数似然函数,其中通过 vector 计算 cdf 是最耗时的部分。示例 1 使用 R::pnorm,
我将内置 R 函数 rnorm、qnorm 和 pnorm 的性能与等效的 Matlab 函数进行了比较。 似乎 rnorm 和 pnorm 函数在 R 中比在 Matlab 中慢 3-6 倍,而 q
有没有办法优化pnorm?我的代码遇到了一些瓶颈,经过大量优化和基准测试后,我意识到它来自对非常大的 vector 调用 pnorm。 使用 microbenchmarking 我在我的机器上发现如果
我是一名优秀的程序员,十分优秀!