【问题标题】:What is MATLAB's equivalent to R's ppois(x,lambda,log.p = TRUE)?MATLAB 的等价于 R 的 ppois(x,lambda,log.p = TRUE) 是什么?
【发布时间】:2019-04-12 13:31:15
【问题描述】:

我知道 R 的 ppois() 相当于 MATLAB 的 poisscdf()

但是,我在 R 中有一个代码为 ppois(x,lambda,log.p = TRUE)

MATLAB 中的 log.p=TRUE 等价物是什么?

同样对于 R 函数 dpois(x,lambda,log = TRUE),MATLAB 中的 log = TRUE poisspdf() 的等价物是什么?

我们是否在 MATLAB 中内置了类似的函数?

【问题讨论】:

    标签: r matlab


    【解决方案1】:

    如果我正确理解 R 文档,log.p = TRUE 所做的只是将输出概率设置为对数刻度。 MATLAB 的等价物只是 log(poisscdf(...)),它还将输出设置为对数值。


    在 cmets 中建议,这在精度方面比 R 版本更差,因为据称 MATLAB 不使用双精度值。首先:MATLAB 默认使用双精度。第二:除非使用vpa() 编写您自己的算法,否则这是您将获得的最简单的解决方案。

    使用建议的时间in the comments: R:ppois(4,2,log.p = TRUE) 返回-0.05408985; MATLAB 的log(poisscdf(4,2)) 返回-0.0540898509446867

    【讨论】:

    • @Roland MATLAB 默认是双精度的,正如我所说,这是“等价的”,因为没有内置参数。当然可以使用vpa() 编写自己的代码,但这远远超出了我认为的“等效”内置函数。
    • @Roland 我不能如实做,因为我不知道两者中哪一个更精确。我对 R 没有任何经验,所以据我所知,这可能是错误的。如果有两个程序都可用的人愿意测试这两种方法的精度,我很乐意补充。
    • @Roland 为最初基于错误假设的假设添加警告绝对是我不会做的。如果您想对其进行测试和评估,那么可以,但是您似乎只是不信任 matlab
    • @Roland 可能是对的,如果您的建议是引擎盖下的数学正在做一些不同的事情。如果您可以实际展示它而不是建议它,那就太好了,无论是答案还是解释它的评论。现在你建议 matlab 不使用双打,这一直是错误的。 (不要把这个评论看得很糟糕,我是真诚地建议它)
    • 运行日志(ppois(1, 4999)); rextester 中的 ppois(1, 4999, log = TRUE)。
    猜你喜欢
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    相关资源
    最近更新 更多