Fisher's Z Link Function
Computes the Fisher Z transformation, including its inverse and the first two derivatives.
fisherzlink(theta, bminvalue = NULL, bmaxvalue = NULL,
inverse = FALSE, deriv = 0, short = TRUE, tag = FALSE)theta |
Numeric or character. See below for further details. |
bminvalue, bmaxvalue |
Optional boundary values.
Values of |
inverse, deriv, short, tag |
Details at |
The fisherz link function is commonly used for parameters that
lie between -1 and 1.
Numerical values of theta close to -1 or 1 or
out of range result in
Inf, -Inf, NA or NaN.
For deriv = 0,
0.5 * log((1+theta)/(1-theta))
(same as atanh(theta))
when inverse = FALSE,
and if inverse = TRUE then
(exp(2*theta)-1)/(exp(2*theta)+1)
(same as tanh(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
1.
One way of overcoming this is to use, e.g., bminvalue.
The link function rhobitlink is very similar to fisherzlink,
e.g., just twice the value of fisherzlink.
This link function may be renamed to atanhlink in the near future.
Thomas W. Yee
McCullagh, P. and Nelder, J. A. (1989). Generalized Linear Models, 2nd ed. London: Chapman & Hall.
theta <- seq(-0.99, 0.99, by = 0.01)
y <- fisherzlink(theta)
## Not run: plot(theta, y, type = "l", las = 1, ylab = "",
main = "fisherzlink(theta)", col = "blue")
abline(v = (-1):1, h = 0, lty = 2, col = "gray")
## End(Not run)
x <- c(seq(-1.02, -0.98, by = 0.01), seq(0.97, 1.02, by = 0.01))
fisherzlink(x) # Has NAs
fisherzlink(x, bminvalue = -1 + .Machine$double.eps,
bmaxvalue = 1 - .Machine$double.eps) # Has no NAsPlease choose more modern alternatives, such as Google Chrome or Mozilla Firefox.