fisherz {VGAM} | R Documentation |
Computes the Fisher Z transformation, including its inverse and the first two derivatives.
fisherz(theta, earg = list(), inverse = FALSE, deriv = 0, short = TRUE, tag = FALSE)
theta |
Numeric or character.
See below for further details.
|
earg |
Optional list. Extra argument for passing in additional information.
Values of theta which are less than or equal to -1 can be
replaced by the bminvalue component of the list earg
before computing the link function value.
Values of theta which are greater than or equal to 1 can be
replaced by the bmaxvalue component of the list earg
before computing the link function value.
See Links for general information about earg .
|
inverse |
Logical. If TRUE the inverse function is computed.
|
deriv |
Order of the derivative. Integer with value 0, 1 or 2.
|
short |
Used for labelling the blurb slot of a
vglmff-class object.
|
tag |
Used for labelling the linear/additive predictor in the
initialize slot of a vglmff-class object.
Contains a little more information if TRUE .
|
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
.
The arguments short
and tag
are used only if
theta
is character.
For deriv = 0
,
0.5 * log((1+theta)/(1-theta))
when inverse = FALSE
,
and if inverse = TRUE
then
(exp(2*theta)-1)/(exp(2*theta)+1)
.
For deriv = 1
, then the function returns
d theta
/ d eta
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 earg
.
The link function rhobit
is very similar to fisherz
,
e.g., just twice the value of fisherz
.
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 = fisherz(theta) ## Not run: plot(theta, y, type="l", las=1, ylab="", main="fisherz(theta)") abline(v=0, h=0, lty=2) ## End(Not run) x = c(seq(-1.02, -0.98, by=0.01), seq(0.97, 1.02, by=0.01)) fisherz(x) # Has NAs fisherz(x, earg=list(bminvalue= -1 + .Machine$double.eps, bmaxvalue= 1 - .Machine$double.eps)) # Has no NAs