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)
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.
Numeric or character. See below for further details.
Optional boundary values.
Values of theta
which are less than or equal
to bminvalue
before computing the link function value.
Values of theta
which are greater than or equal
to bmaxvalue
before computing the link function value.
See Links
.
Details at Links
.
Thomas W. Yee
The fisherz
link function is commonly used for
parameters that
lie between theta
close
to Inf
, -Inf
, NA
or NaN
.
McCullagh, P. and Nelder, J. A. (1989). Generalized Linear Models, 2nd ed. London: Chapman & Hall.
Links
,
rhobitlink
,
logitlink
.
theta <- seq(-0.99, 0.99, by = 0.01)
y <- fisherzlink(theta)
if (FALSE) plot(theta, y, type = "l", las = 1, ylab = "",
main = "fisherzlink(theta)", col = "blue")
abline(v = (-1):1, h = 0, lty = 2, col = "gray")
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
Run the code above in your browser using DataLab