The VGAM package provides a number of (parameter) link functions which are described in general here. Collectively, they offer the user considerable choice and flexibility for modelling data.
TypicalVGAMlink(theta, someParameter = 0, bvalue = NULL, inverse = FALSE,
deriv = 0, short = TRUE, tag = FALSE)
Returns one of: the link function value or its first or second derivative, the inverse link or its first or second derivative, or a character description of the link.
Here are the general details.
If inverse = FALSE
and deriv = 0
(default) then the ordinary link function
\(\eta = g(\theta)\)
is returned.
If inverse = TRUE
and deriv =
0
then the inverse link function value
is returned, hence theta
is really
\(\eta\) (the only occasion this happens).
If inverse = FALSE
and deriv
= 1
then it is \(d\eta / d\theta\)
as a function of
\(\theta\). If inverse =
FALSE
and deriv = 2
then it is
\(d^2\eta / d\theta^2\)
as a function of
\(\theta\).
If inverse = TRUE
and deriv
= 1
then it is \(d\theta / d\eta\)
as a function of
\(\theta\). If inverse = TRUE
and deriv = 2
then it is \(d^2\theta
/ d\eta^2\)
as a function of
\(\theta\).
It is only when deriv = 1
that
linkfun(theta, deriv = 1, inverse = TRUE)
and
linkfun(theta, deriv = 1, inverse = FALSE)
are reciprocals of each other. In particular,
linkfun(theta, deriv = 2, inverse = TRUE)
and
linkfun(theta, deriv = 2, inverse = FALSE)
are not reciprocals of each other in general.
Numeric or character.
This is usually \(\theta\) (default)
but can sometimes be \(\eta\),
depending on the other arguments.
If theta
is character then inverse
and
deriv
are ignored.
The name theta
should always be the
name of the first argument.
Some parameter, e.g., an offset.
Boundary value, positive if given.
If 0 < theta
then
values of theta
which are less than
or equal to 0 can be replaced by bvalue
before computing the link function value.
Values of theta
which are greater than
or equal to 1 can be
replaced by 1 minus bvalue
before computing the link function value.
The value bvalue = .Machine$double.eps
is sometimes a reasonable value, or something
slightly higher.
Logical. If TRUE
and deriv = 0
then
the inverse link value
\(\theta\) is returned, hence the argument
theta
is really \(\eta\).
In all other cases, the argument theta
is
really \(\theta\).
Integer.
Either 0, 1, or 2, specifying the order of
the derivative.
Most link functions handle values up to 3 or 4.
Some links can even handle values up to 9 but may
suffer from catastrophic cancellation near the
boundaries,
be inefficient and slow because they are
based on D
.
Logical.
These are used for labelling the blurb
slot of a vglmff-class
object.
These arguments are used only if theta
is character, and gives the formula for the
link in character form. If tag = TRUE
then the result is preceeded by a little
more information.
The output of link functions changed at
VGAM 0.9-9
(date was around
2015-07). Formerly, linkfun(theta,
deriv = 1)
is now linkfun(theta,
deriv = 1, inverse = TRUE)
, or equivalently,
1 / linkfun(theta, deriv = 1, inverse =
TRUE)
. Also, formerly, linkfun(theta,
deriv = 2)
was 1 / linkfun(theta,
deriv = 2, inverse = TRUE)
. This was a bug.
Altogether, these are big changes and the
user should beware!
In VGAM 1.0-7
(January 2019)
all link function names were made to
end in the characters "link"
,
e.g.,
loglink
replaces loge
,
logitlink
replaces logit
.
For this most of them were renamed.
Upward compatability holds for older link
function names, however, users should adopt
the new names immediately.
T. W. Yee
Almost all VGAM link functions have something similar to the argument list as given above. In this help file we have \(\eta = g(\theta)\) where \(g\) is the link function, \(\theta\) is the parameter and \(\eta\) is the linear/additive predictor. The link \(g\) must be strictly monotonic and twice-differentiable in its range.
The following is a brief enumeration of all VGAM link functions.
For parameters lying between 0 and 1 (e.g.,
probabilities):
logitlink
,
probitlink
,
clogloglink
,
cauchitlink
,
foldsqrtlink
,
logclink
.
For positive parameters
(i.e., greater than 0):
loglink
,
negloglink
,
sqrtlink
,
powerlink
.
For parameters greater than 1:
logloglink
,
loglogloglink
(greater than \(e\)).
For parameters between \(-1\) and \(1\):
fisherzlink
,
rhobitlink
.
For parameters between finite \(A\) and \(B\):
extlogitlink
,
logofflink
(\(B = \infty\)).
For unrestricted parameters (i.e., any value):
identitylink
,
negidentitylink
,
reciprocallink
,
negreciprocallink
.
McCullagh, P. and Nelder, J. A. (1989). Generalized Linear Models, 2nd ed. London: Chapman & Hall.
TypicalVGAMfamilyFunction
,
linkfun
,
vglm
,
vgam
,
rrvglm
.
cqo
,
cao
.