toppleQlink {VGAMextra} | R Documentation |
Link functions for the quantiles of several 1–parameter continuous distributions
Description
Computes the toppleQlink
transformation, its inverse and the
first two derivatives.
Usage
toppleQlink(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 |
Numeric. A single value between 0 and 1.
It is the |
bvalue , inverse , deriv , short , tag |
See |
Details
This link function comforms with requirements of VGAM in order
to be compatible within the VGLM/VGAM framework. That is, monotonic,
onto, among other features.
In this line, the toppleQlink
transformation arises as the
proper link to model any quantile of the Topp–Leone distribution
topple
. It is defined as
\frac{1 - \sqrt{1 - p^{1/s}}}{m.max}.
Here, s
is a shape parameter lying in (0, 1)
as in topple
,
whereas m.max
stands for the maximum in (0, 1)
of
1 - \sqrt{1 - p^{1/s}}
as a function of s
. Note, p
is prespecified (fixed) between
0
and 1
.
Numerical values of s
or p
out of range will
result in Inf
, -Inf
, NA
or NaN
correspondingly.
Arguments inverse
and deriv
will be ignored
if theta
is character.
Value
For deriv = 0
, the toppleQlink
transformation of
theta
, when inverse = FALSE
. If inverse = TRUE
, then
the inverse transformation
log(p)/log(1 - (1 - theta *
m.max
)^2)
is returned.
For deriv = 1
, this function returns
d
eta
/ d
theta
,
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
.
Warning
The expression p^{1/s}
tends rapidly to zero specially
for values of s
less than 0.005
. Therefore, in such cases
numerical values represented as zero may be returned when computing
this link function, regardless the value of argument inverse
.
Note
Numerical instability may occur for values theta
too close
to 0.0 or 1.0. Use argument bvalue
to replace them before
computing the link.
Author(s)
V. Miranda and Thomas W. Yee.
See Also
Examples
## E1. toppleQLink() and its inverse. ##
my.s <- ppoints(50); p <- 0.75
max(my.s - toppleQlink(toppleQlink(my.s, p = p), p = p, inverse =TRUE)) ## Zero
toppleQlink(theta = c(-0.15, -0.10, 0.25, 0.35) , p = p, inverse = FALSE) ## NaNs
toppleQlink(theta = c(-0.15, -0.10, 0.25, 0.35) , p = p, inverse = TRUE) ## NaNs
## E2. toppleQLink() for different avlues of 'p'. ##
plot(toppleQlink(theta = my.s, p = 0.05) ~ my.s,
type = "l", col = "blue", lty = "dotted", lwd = 3,
xlim = c(-0.1, 1.65), ylim = c(-0.1, 1.1), las = 1,
main = c("The toppleQlink() transformation"),
ylab = "eta = toppleQlink", xlab = "theta")
abline(h = 0, v = 0, lwd = 2)
abline(h = 1, v = 1, lty = "dotted", col = "green")
lines(toppleQlink(theta = my.s, p = 0.25) ~ my.s, lwd = 2, lty = "dashed", col = "gray")
lines(toppleQlink(theta = my.s, p = 0.50) ~ my.s, lwd = 2, lty = "dashed", col = "brown")
lines(toppleQlink(theta = my.s, p = 0.75) ~ my.s, lwd = 2, lty = "dashed", col = "orange")
lines(toppleQlink(theta = my.s, p = 0.95) ~ my.s, lwd = 2, lty = "dashed", col = "gray50")
legend(1.1, 1.0, c("p = 0.05", "p = 0.25", "p = 0.50", "p = 0.75", "p = 0.95"),
lwd = rep(2, 5), lty = rep("dashed", 5),
col = c("blue", "gray", "brown", "orange", "gray50"))