benini1Qlink: Link functions for the quantiles of several 1-parameter...

View source: R/contsDistQlinks.R

benini1QlinkR Documentation

Link functions for the quantiles of several 1–parameter continuous distributions


Computes the benini1Qlink transformation, its inverse and the first two derivatives.


  benini1Qlink(theta, p = stop("Argument 'p' must be entered."),
               y0 = stop("Argument 'y0' must be specified."),
               bvalue = NULL, inverse = FALSE,
               deriv = 0, short = TRUE, tag = FALSE)



Numeric or character. See below for further details.


Numeric. A single value between 0.0 and 1.0. It is the p–quantile to be modeled by this link function.


Same as benini1.

bvalue, inverse, deriv, short, tag

See Links.


This is a link function to model any p–quantile of the 1–parameter Benini distribution. It is called the benini1Qlink transformation defined as

\log y_0 + \sqrt{\frac{ -\log (1 - p) }{s}}

where y_0 > 0 is a scale parameter and s is a positive shape parameter, as in benini1.

Numerical values of s or p out of range may result in Inf, -Inf, NA or NaN.

In particular, arguments inverse and deriv are disregarded if theta is character.


For deriv = 0, the benini1Qlink transformation of theta, when inverse = FALSE. If inverse = TRUE, then the inverse transformation given by -log(1 - p) / (theta - log y0)^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.


The horizontal straight line \log y0 is a lower asymptote for this link function as \theta increases to \infty. Thus, when inverse = TRUE and deriv = 0 entries at theta becoming \eta must be greater than \log y0. Else, NaN will be returned. See examples 2 and 3 below.


Numerical instability may occur for values theta too close to zero or lower than \log y0. Use argument bvalue to replace them before computing the link.


V. Miranda and Thomas W. Yee.

See Also

benini1, Links.


  ## E1. benini1Qlink() and its inverse ##
   p <- 0.50; y0 = 1.25         ## Modeling the median
   my.s <- seq(0, 5, by = 0.1)[-1]
    max(my.s - benini1Qlink(benini1Qlink(my.s, p = p, y0 = y0), 
                            p = p, y0 = y0, inverse  =TRUE))    ## Zero

  ## E2. Plot of the benini1Qlink() transformation and its inverse     ##
  ## Note, inverse = TRUE implies that argument 'theta' becomes 'eta'. ##
  ## which must be greater than log(y0). Else, value less than log(y0) ##
  ## are replaced by NaN.                                              ##
   #--- THE LINK
   my.b <- seq(0, 5, by = 0.01)[-1]
   plot(benini1Qlink(theta = my.b, p = p, y0 = y0) ~ my.b,
        type = "l", col = "blue", lty = "dotted", lwd = 3,
        xlim = c(-0.1, 6), ylim = c(-0.1, 5), las = 1,
        main = c("Blue is benini1Qlink(), green is the inverse"),
        ylab = "eta = benini1Qlink", xlab = "theta")
   abline(h = 0, v = 0, lwd = 2)
   lines(my.b, benini1Qlink(theta = my.b, p = p, y0 = y0, inv = TRUE),
         col = "green", lwd = 2, lty = "dashed")
   #--- Tracing the identity function for double--check
   lines(my.b, my.b)     
   ## E3. WARNING! The first two values are less than log(y0)  ##
    benini1Qlink(theta = c(0.10, 0.15, 0.25, 0.35) , p = p, y0 = y0, inverse  = TRUE)

VGAMextra documentation built on Nov. 2, 2023, 5:59 p.m.