当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R notExp 优于对数正参数化的函数


R语言 notExp 位于 mgcv 包(package)。

说明

当参数应该为正时,统计优化中的常见做法是使用log-parameterizations。即,如果优化参数 a 应为非负,那么我们使用 a=exp(b) 并针对无约束参数 b 进行优化。这通常效果很好,但它确实意味着 b 的工作范围相当有限:例如,使用 8 字节双精度数,如果 b 的大小远高于 700,则 a 上溢或下溢。这可能会给数值优化方法带来问题。

notExp 是一个单调函数,用于将实数线映射到正实数线,其极端下溢和溢出行为比 exp 少得多。它是一个 piece-wise 函数,但连续到二阶导数:请参阅源代码以了解确切的定义,并通过下面的示例了解它的外观。

notLognotExp 的反函数。

这些函数的主要用途最初是为 lme 提供更健壮的 pdMat 类,以供 gamm 使用。由于 nlme 优化例程的更改,目前使用 notExp2notLog2 函数代替它们。

用法

notExp(x)

notLog(x)

参数

x

实数 (notExp) 或正实数 (notLog) 的参数数组。

根据提供的参数值计算的函数值数组。

例子

## Illustrate the notExp function: 
## less steep than exp, but still monotonic.
require(mgcv)
x <- -100:100/10
op <- par(mfrow=c(2,2))
plot(x,notExp(x),type="l")
lines(x,exp(x),col=2)
plot(x,log(notExp(x)),type="l")
lines(x,log(exp(x)),col=2) # redundancy intended
x <- x/4
plot(x,notExp(x),type="l")
lines(x,exp(x),col=2)
plot(x,log(notExp(x)),type="l")
lines(x,log(exp(x)),col=2) # redundancy intended
par(op)
range(notLog(notExp(x))-x) # show that inverse works!

作者

Simon N. Wood simon.wood@r-project.org

参考

https://www.maths.ed.ac.uk/~swood34/

也可以看看

pdTenspdIdnotgamm

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Functions for better-than-log positive parameterization。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。