Description Usage Arguments Details Value Note Author(s) References See Also Examples

Computes the complementary log-log transformation, including its inverse and the first two derivatives.

1 2 |

`theta` |
Numeric or character. See below for further details. |

`bvalue` |
See |

`inverse, deriv, short, tag` |
Details at |

The complementary log-log link function is commonly used for parameters
that lie in the unit interval.
But unlike
`logitlink`

,
`probitlink`

and
`cauchitlink`

, this link is not symmetric.
It is the inverse CDF of the extreme value
(or Gumbel or log-Weibull) distribution.
Numerical values of `theta`

close to 0 or 1 or out of range result in `Inf`

, `-Inf`

,
`NA`

or `NaN`

.

For `deriv = 0`

, the complimentary log-log of `theta`

,
i.e., `log(-log(1 - theta))`

when `inverse = FALSE`

, and if
`inverse = TRUE`

then `1-exp(-exp(theta))`

.

For `deriv = 1`

, then the function returns
*d* `eta`

/ *d* `theta`

as a function of `theta`

if `inverse = FALSE`

,
else if `inverse = TRUE`

then it returns the reciprocal.

Here, all logarithms are natural logarithms, i.e., to base *e*.

Numerical instability may occur when `theta`

is close to 1 or 0.
One way of overcoming this is to use `bvalue`

.

Changing 1s to 0s and 0s to 1s in the response means that effectively
a loglog link is fitted. That is, tranform *y* by *1-y*.
That's why only one of `clogloglink`

and `logloglink`

is written.

With constrained ordination (e.g., `cqo`

and
`cao`

) used with `binomialff`

, a complementary
log-log link function is preferred over the
default `logitlink`

,
for a good reason. See the example below.

In terms of the threshold approach with cumulative probabilities for an ordinal response this link function corresponds to the extreme value distribution.

Thomas W. Yee

McCullagh, P. and Nelder, J. A. (1989).
*Generalized Linear Models*, 2nd ed. London: Chapman & Hall.

`Links`

,
`logitoffsetlink`

,
`logitlink`

,
`probitlink`

,
`cauchitlink`

,
`pgumbel`

.

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 31 32 33 34 35 36 37 38 | ```
p <- seq(0.01, 0.99, by = 0.01)
clogloglink(p)
max(abs(clogloglink(clogloglink(p), inverse = TRUE) - p)) # Should be 0
p <- c(seq(-0.02, 0.02, by = 0.01), seq(0.97, 1.02, by = 0.01))
clogloglink(p) # Has NAs
clogloglink(p, bvalue = .Machine$double.eps) # Has no NAs
## Not run:
p <- seq(0.01, 0.99, by = 0.01)
plot(p, logitlink(p), type = "l", col = "limegreen", lwd = 2, las = 1,
main = "Some probability link functions", ylab = "transformation")
lines(p, probitlink(p), col = "purple", lwd = 2)
lines(p, clogloglink(p), col = "chocolate", lwd = 2)
lines(p, cauchitlink(p), col = "tan", lwd = 2)
abline(v = 0.5, h = 0, lty = "dashed")
legend(0.1, 4, c("logitlink", "probitlink", "clogloglink", "cauchitlink"),
col = c("limegreen", "purple", "chocolate", "tan"), lwd = 2)
## End(Not run)
## Not run:
# This example shows that clogloglink is preferred over logitlink
n <- 500; p <- 5; S <- 3; Rank <- 1 # Species packing model:
mydata <- rcqo(n, p, S, eq.tol = TRUE, es.opt = TRUE, eq.max = TRUE,
family = "binomial", hi.abundance = 5, seed = 123,
Rank = Rank)
fitc <- cqo(attr(mydata, "formula"), I.tol = TRUE, data = mydata,
fam = binomialff(multiple.responses = TRUE, link = "cloglog"),
Rank = Rank)
fitl <- cqo(attr(mydata, "formula"), I.tol = TRUE, data = mydata,
fam = binomialff(multiple.responses = TRUE, link = "logitlink"),
Rank = Rank)
# Compare the fitted models (cols 1 and 3) with the truth (col 2)
cbind(concoef(fitc), attr(mydata, "concoefficients"), concoef(fitl))
## End(Not run)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.