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

## Description

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

## Usage

 ```1 2 3``` ``` maxwellQlink(theta, p = stop("Argument 'p' must be specified."), bvalue = NULL, inverse = FALSE, deriv = 0, short = TRUE, tag = FALSE) ```

## Arguments

 `theta` Numeric or character. See below for further details. `p` Numeric. A single value between 0 and 1. It is the p–quantile to be modeled by this link function. `bvalue, inverse, deriv, short, tag` See `Links`.

## Details

In the VGLM/VGAM quantile regression context, this link function can be used to model any p–quantile of the Maxwell distribition. It is the `maxwellQlink` transformation given by

sqrt(2 * qgamma(p, 1.5) / a ).

Here, a is positive parameter as in `maxwell` whereas `qgamma` is the quantile function of the gamma distribution.

Numerical values of a or p out of range will result in `Inf`, `-Inf`, `NA` or `NaN` correspondingly.

In particular, arguments `inverse` and `deriv` are disregarded if `theta` is character. Also, if `inverse = TRUE` and `deriv = 0`, then argument `theta` becomes η. See `Links` for further details about this.

## Value

For `deriv = 0`, the `maxwellQlink` transformation of `theta`, when inverse = FALSE. If `inverse = TRUE`, then the inverse given by `2*qgamma(p, 1.5) / theta^2 ` is returned.

For `deriv = 1`, this function returns the derivative d `eta` / d `theta`, if `inverse = FALSE`. Else, the reciprocal d `theta` / d `eta` as a function of `theta`.

If deriv = 2, then the second order derivatives in terms of `theta` are accordingly returned.

## Note

Numerical instability may occur for values `theta` too close to zero. Use argument `bvalue` to replace them before computing the link.

## Author(s)

V. Miranda and Thomas W. Yee.

`maxwell`, `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``` ``` ## E1. maxwellQlink() and its inverse ## p <- 0.25 ## Modeling the first quartile my.a <- seq(0, 5, by = 0.1)[-1] max(my.a - maxwellQlink(maxwellQlink(my.a, p = p), p = p, inverse =TRUE)) ## Zero ## E2. The first two values are negative, NaN is returned ## maxwellQlink(theta = c(-0.15, -0.10, 0.25, 0.35) , p = p, inverse = FALSE) maxwellQlink(theta = c(-0.15, -0.10, 0.25, 0.35) , p = p, inverse = TRUE) ## E3. Plot of the maxwellQlink() and its inverse ## ## Note, inverse = TRUE implies that argument 'theta' becomes 'eta'. ## #--- THE LINK plot(maxwellQlink(theta = my.a, p = p) ~ my.a, type = "l", col = "blue", lty = "dotted", lwd = 3, xlim = c(-0.1, 10), ylim = c(-0.1, 5), las = 1, main = c("Blue is maxwellQlink(), green is the inverse"), ylab = "eta = maxwellQlink", xlab = "theta") abline(h = 0, v = 0, lwd = 2) #--- THE INVERSE lines(my.a, maxwellQlink(theta = my.a, p = p,inv = TRUE), col = "green", lwd = 2, lty = "dashed") lines(my.a, my.a) # Tracing the identity function for double--check ```