borel.tannerMlink | R Documentation |

Computes the `borel.tannerMlink`

transformation,
its inverse and the first two derivatives.

```
borel.tannerMlink(theta, Qsize = 1,
bvalue = NULL, inverse = FALSE,
deriv = 0, short = TRUE, tag = FALSE)
```

`theta` |
Numeric or character. See below for further details. |

`Qsize` |
A positive integer. It is called |

`bvalue, inverse, deriv, short, tag` |
Details at |

As with
`zetaffMlink`

or
`yulesimonMlink`

,
this link function is part of a set of link functions in
VGAM developed under a common methodology: by taking the
logarithm of the mean of the corresponding distribution.

In particular, this link function emerges by computing the logarithm of the mean of the Borel–Tanner distribution. It is defined as

` \tt{borel.tannerMlink}(a) = - \log (Q^{-1} - aQ^{-1}),`

where `a`

, `0 < a < 1`

, is a scale parameter
as in `borel.tanner`

.

The domain set of `borel.tannerMlink`

is the open interval
`(0, 1)`

, except when `inverse = TRUE`

and `deriv = 0`

.
See below for further details about this.
Moreover, unlike `zetaffMlink`

or `posPoiMlink`

, the
inverse of `borel.tannerMlink`

can be written in
closed–form.

Values of `a`

(i.e. `theta`

) out of range will result in
`NaN`

of `NA`

.

If `theta`

is a character, arguments `inverse`

and
`deriv`

are discarded.

For `deriv = 0`

, the `borel.tannerMlink`

transformation of
`theta`

, if `inverse = FALSE`

. When `inverse = TRUE`

,
`theta`

becomes `\eta`

and the inverse of
`borel.tannerMlink`

, given by

` 1 - \frac{Q}{ e^{\eta} },`

is returned. Here, the domain set changes to `(0, \infty)`

.

For `deriv = 1`

, *d* `eta`

/ *d* `theta`

as a function of `theta`

if `inverse = FALSE`

, else
the reciprocal *d* `theta`

/ *d* `eta`

.

Similarly, when `deriv = 2`

the second order derivatives
in terms of `theta`

are returned.

Haight, F. and Brueuer, M. A. (1960) The Borel–Tanner distribution.
*Biometrika*, **47**, 143–150.

The vertical line `a = 1`

is an asymptote for this link
function, which sharply grows for values of `a`

too close to 1.0
from the left. For such cases, `Inf`

might result when computing
`borel.tannerMlink`

.

This link function is useful to model any parameter
in `(0, 1)`

. Then, some problems may occur if there
are covariates causing out of range values.

V. Miranda and T. W. Yee

`borel.tanner`

,
`yulesimonMlink`

,
`zetaffMlink`

,
`posPoiMlink`

,
`Links`

.

```
## Example 1. Special values for theta (or eta, accordingly) ##
a.par <- c(0, 1:10/10, 20, 1e1, Inf, -Inf, NaN, NA)
# The borel.tannerMlink transformation and the first two derivatives.
print(rbind(a.par,
deriv1 = borel.tannerMlink(theta = a.par, inverse = FALSE, deriv = 1),
deriv2 = borel.tannerMlink(theta = a.par, inverse = FALSE, deriv = 2)),
digits = 2)
# The inverse of 'borel.tannerMlink()' and the first two derivatives.
# 'theta' turns into 'eta'.
print(rbind(a.par,
Invderiv1 = borel.tannerMlink(theta = a.par, inverse = TRUE, deriv = 1),
Invderiv2 = borel.tannerMlink(theta = a.par, inverse = TRUE, deriv = 2)),
digits = 2)
## Example 2 ##
a.param <- c(0, 1, 5, 10, 1e2, 1e3)
rbind(a.values = a.param,
inv.BT = borel.tannerMlink(theta = a.param, inverse = TRUE))
data.inv <- borel.tannerMlink(borel.tannerMlink(a.param, inv = TRUE)) - a.param
summary(data.inv) ## Should be zero
## Example 3. Some link functions in VGAM with domain set (0, 1) ##
a.param <- ppoints(100)
par(lwd = 2)
plot(a.param, borel.tannerMlink(a.param), ylim = c(-5, 7), xlim = c(-0.01, 1.01),
type = "l", col = "gray10", ylab = "transformation",
las = 1, main = "Some probability link functions")
lines(a.param, logffMlink(a.param), col = "blue")
lines(a.param, logitlink(a.param), col = "limegreen")
lines(a.param, probitlink(a.param), col = "purple")
lines(a.param, clogloglink(a.param), col = "chocolate")
lines(a.param, cauchitlink(a.param), col = "tan")
abline(v = c(0.5, 1), lty = "dashed")
abline(v = 0, h = 0, lty = "dashed")
legend(0.05, 7, c("borel.tanneMlink", "logffMlink", "logitlink", "probitlink",
"clogloglink", "cauchitlink"),
col = c("gray10", "blue", "limegreen", "purple", "chocolate", "tan"),
lwd = 1)
par(lwd = 1)
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.