# expMeanlink: Link functions for the mean of 1-parameter continuous... In VGAMextra: Additions and Extensions of the 'VGAM' Package

## Description

Computes the `expMlink` transformation, its inverse and the first two derivatives.

## Usage

 ```1 2``` ``` expMlink(theta, location = 0, bvalue = NULL, inverse = FALSE, deriv = 0, short = TRUE, tag = FALSE) ```

## Arguments

 `theta` Numeric or character. This is theta although may be η depending on the other parameters. See below for further details. `location` This is a known location parameter. Same as `location` in `exponential`. `bvalue, inverse, deriv, short, tag` See `Links`.

## Details

This is a link function to model the mean of the exponential distribution, `exponential`. It is defined as

η = log (A + rate^(-1)),

where rate > 0 is a rate parameter and A is a known location parameter, same as `exponential`.

Numerical values of rate out of range may result in `Inf`, `-Inf`, `NA` or `NaN`.

## Value

For `deriv = 0`, the `expMlink` transformation of `theta` when `inverse = FALSE`. If `inverse = TRUE`, then the inverse `exp(theta - A)^(-1)`.

For `deriv = 1`, d `eta` / d `theta` when `inverse = FALSE`. If `inverse = TRUE`, then d `theta` / d `eta` as a function of `theta`.

Similarly, when `deriv = 2`, the second derivatives in terms of `theta` are returned.

## Note

Numerical instability may occur for values `theta` too close to zero. Use argument `bvalue` to replace them before computing the link.

If `theta` is character, then arguments `inverse` and `deriv` are ignored. See `Links` for further details.

## Author(s)

V. Miranda and Thomas W. Yee.

`exponential`, `Links`.
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29``` ``` ## E1. Modelling the mean of the exponential distribution ## set.seed(17010402) nn <- 100 edata <- data.frame(x2 = runif(nn) - 0.5, x3 = runif(nn) - 0.5) edata <- transform(edata, eta = 0.2 - 0.7 * x2 + 1.9 * x3) #----- The mean is a function of 'x2' and 'x3' ------# edata <- transform(edata, rate = expMlink(eta, inverse = TRUE)) edata <- transform(edata, y = rexp(nn, rate = rate)) with(edata, stem(y)) with(edata, hist(y)) exp.fit <- vglm(y ~ x2 + x3, exponential(link = "expMlink"), data = edata, zero = NULL, trace = TRUE, crit = "log") coef(exp.fit, matrix = TRUE) summary(exp.fit) ## E2. expMlink() and its inverse ## theta <- 0.1 + 1:5 location <- 1.5 my.diff <- theta - expMlink(expMlink(theta = theta, location = location), location = location, inverse =TRUE) summary(my.diff) # Zero ## E3. Special values in a matrix ## theta <- matrix(c(Inf, -Inf, NA, NaN, 1 , 2), ncol = 3, nrow = 2) expMlink(theta = theta, location = location) ```