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 NAs
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.