gamma1Qlink {VGAMextra} | R Documentation |
Link functions for the quantiles of several 1–parameter continuous distributions
Description
Computes the gamma1Qlink
transformation, its inverse and the
first two derivatives.
Usage
gamma1Qlink(theta, p = stop("Argument 'p' must be specified."),
bvalue = NULL, inverse = FALSE,
deriv = 0, short = TRUE, tag = FALSE)
Arguments
theta |
Numeric or character. It is |
p |
A numeric vector of |
bvalue , inverse , deriv , short , tag |
See |
Details
This link function has been specifically designed to model any
p
–quantile of the 1–parameter gamma distribution,
gamma1
, in the VGLM/VGAM context.
It is defined as
\eta = \log {\tt{qgamma}}({\tt{p}}, {\tt{shape =}} s),
where s
is a positive shape parameter as in
gamma1
, whilst
{\tt{qgamma()}}
is the quantile function
qgamma
.
The inverse of the gamma1Qlink
cannot be expressed in closed
form. Instead, the inverse image, s_{\eta}
,
of \eta
is numerically approximated by
newtonRaphson.basic
.
Numerical values of s
or p
out of range will
result in Inf
, -Inf
, NA
or NaN
correspondingly.
Arguments inverse
and deriv
are dismissed
if theta
is character.
Value
For deriv = 0
, the gamma1Qlink
transformation of
theta
, when inverse = FALSE
.
If inverse = TRUE
, then
theta
becomes \eta
, and therefore,
the approximate inverse image of \eta
is returned.
For deriv = 1
, the partial derivative
d
eta
/ d
theta
is returned,
if inverse = FALSE
. If inverse = TRUE
,
then the reciprocal
d
theta
/ d
eta
as a function of theta
.
If deriv = 2
, then the second order derivatives as a function
of theta
.
Note
Numerical instability may occur for values theta
too large, or
too close to 0.0. Use argument bvalue
to replace them before
computing the link.
Author(s)
V. Miranda and Thomas W. Yee.
See Also
Examples
## E1. gamma1QLink() and values causing NaNs or out of range ##
p <- 0.75 # The third quartile is of interest.
my.s <- seq(0, 5, by = 0.1)[-1]
max(my.s - gamma1Qlink(gamma1Qlink(my.s, p = p), p = p, inverse =TRUE)) ## Zero
## E2. Special values of theta ##
gamma1Qlink(theta = c(-0.15, -0.10, 0, 1:10) , p = p, inverse = FALSE) ## NaNs
gamma1Qlink(theta = c(-5, -3, 0, 1:10) , p = p, inverse = TRUE) ## Out of range
## E3. Plot of gamma1QLink() and its inverse. ##
# gamma1Qlink()
plot(gamma1Qlink(theta = my.s, p = p) ~ my.s,
type = "l", col = "blue", lty = "dotted", lwd = 3,
xlim = c(-0.1, 5), ylim = c(-5, 15), las = 1,
main = c("Blue is gamma1Qlink(), green is the inverse"),
ylab = "gamma1Qlink transformation", xlab = "theta")
abline(h = 0, v = 0, lwd = 2)
# The inverse
lines(my.s, gamma1Qlink(theta = my.s, p = p, inverse = TRUE),
col = "green", lwd = 2, lty = "dashed")
# The identity function, for double-checking.
lines(my.s, my.s, lty = "dotted")