# gamma1Qlink: Link functions for the quantiles of several 1-parameter... In VGAMextra: Additions and Extensions of the 'VGAM' Package

## Description

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

## Usage

 ```1 2 3``` ``` 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 theta by default although it could be eta depending upon other arguments. See `Links` for further details about this. `p` A numeric vector of p–quantiles (numbers between 0 and 1) to be modeled by this link function. `bvalue, inverse, deriv, short, tag` See `Links`.

## 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

η = log qgamma(p = p, shape = s),

where s is a positive shape parameter as in `gamma1`, whilst qgamma() is the quantile function `qgamma`.

The inverse of the `gamma1Qlink` cannot be expressed in closed form. Instead, the inverse image, s[η], of η 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 η, and therefore, the approximate inverse image of η 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.

`gamma1`, `qgamma`, `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 30``` ``` ## 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") ```