notExp2 {mgcv} | R Documentation |

## Alternative to log parameterization for variance components

### Description

`notLog2`

and `notExp2`

are alternatives to `log`

and `exp`

or `notLog`

and `notExp`

for
re-parameterization of variance parameters. They are used by the
`pdTens`

and `pdIdnot`

classes which in turn implement
smooths for `gamm`

.

The functions are typically used to ensure that smoothing parameters are
positive, but the `notExp2`

is not monotonic: rather it cycles between
‘effective zero’ and ‘effective infinity’ as its argument changes. The
`notLog2`

is the inverse function of the `notExp2`

only over an
interval centered on zero.

Parameterizations using these functions ensure that estimated smoothing
parameters remain positive, but also help to ensure that the likelihood is
never indefinite: once a working parameter pushes a smoothing parameter below
‘effetive zero’ or above ‘effective infinity’ the cyclic nature of the
`notExp2`

causes the likelihood to decrease, where otherwise it might
simply have flattened.

This parameterization is really just a numerical trick, in order to get
`lme`

to fit `gamm`

models, without failing due to indefiniteness.
Note in particular that asymptotic results on the likelihood/REML criterion are
not invalidated by the trick,
unless parameter estimates end up close to the effective zero or effective
infinity: but if this is the case then the asymptotics would also have been invalid
for a conventional monotonic parameterization.

This reparameterization was made necessary by some modifications to the
underlying optimization method in `lme`

introduced in nlme 3.1-62. It is
possible that future releases will return to the `notExp`

parameterization.

Note that you can reset ‘effective zero’ and ‘effective infinity’: see below.

### Usage

```
notExp2(x,d=.Options$mgcv.vc.logrange,b=1/d)
notLog2(x,d=.Options$mgcv.vc.logrange,b=1/d)
```

### Arguments

`x` |
Argument array of real numbers ( |

`d` |
the range of |

`b` |
determines the period of the cycle of |

### Value

An array of function values evaluated at the supplied argument values.

### Author(s)

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

### References

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

### See Also

### Examples

```
## Illustrate the notExp2 function:
require(mgcv)
x <- seq(-50,50,length=1000)
op <- par(mfrow=c(2,2))
plot(x,notExp2(x),type="l")
lines(x,exp(x),col=2)
plot(x,log(notExp2(x)),type="l")
lines(x,log(exp(x)),col=2) # redundancy intended
x <- x/4
plot(x,notExp2(x),type="l")
lines(x,exp(x),col=2)
plot(x,log(notExp2(x)),type="l")
lines(x,log(exp(x)),col=2) # redundancy intended
par(op)
```

*mgcv*version 1.9-0 Index]