gpt4 book ai didi

r - R::dexp 的参数化

转载 作者:太空宇宙 更新时间:2023-11-04 12:41:59 25 4
gpt4 key购买 nike

我刚刚花了一段时间试图在我的代码中找到一个错误,结果证明这是一个不寻常的(至少对我而言)R::dexp 函数的参数化。例如:

cppFunction("
double my_dexp(double x, double lambda, double is_log) {
return R::dexp(x, lambda, is_log);
}
")

> my_dexp(4.5, 2.5, FALSE)
[1] 0.06611956
> dexp(4.5, 2.5, FALSE)
[1] 3.251824e-05

寻找 here我可以看到他们使用了定义:

double R::dexp(double x, double sl, int lg)

但我没能弄清楚 sl 代表什么。我不确定这是否在任何地方都有记录 - 所以希望这篇文章对像我这样使用过该功能的其他人发出警告,并且是否有人可以帮助了解使用了哪些参数化以及为什么。

最佳答案

如果您查看 dexp 的函数定义,

R> dexp
function (x, rate = 1, log = FALSE)
.Call(C_dexp, x, 1/rate, log)

您会看到 dexp 使用参数 1/rate 调用 C 函数 C_dexp。这就是 R::dexp 的镜像。在 Rcp 中,它们总是使用与 R 本身在 C 级别上使用的相同的参数化,这可能与 R 级别不同。

这意味着

R> my_dexp(4.5, 1/2.5, FALSE) - dexp(4.5, 2.5, FALSE)
[1] 0

如果您查看 exponential function 上的维基百科页面,您将看到基于速率参数 lambda 的倒数的替代参数化。在此参数化中,参数 beta=1/lambda 充当生存参数的角色。因此,系统的预期生存时间是 beta 时间单位。

关于r - R::dexp 的参数化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53779789/

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