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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.