Computes the reciprocal transformation, including its inverse and the first two derivatives.

reciprocallink(theta, bvalue = NULL, inverse = FALSE, deriv = 0,
                  short = TRUE, tag = FALSE)
negreciprocallink(theta, bvalue = NULL, inverse = FALSE, deriv = 0,
                  short = TRUE, tag = FALSE)

Arguments

theta

Numeric or character. See below for further details.

bvalue

See Links.

inverse, deriv, short, tag

Details at Links.

Details

The reciprocallink link function is a special case of the power link function. Numerical values of theta close to 0 result in Inf, -Inf, NA or NaN.

The negreciprocallink link function computes the negative reciprocal, i.e., \(-1/ \theta\).

Value

For reciprocallink: for deriv = 0, the reciprocal of theta, i.e., 1/theta when inverse = FALSE, and if inverse = TRUE then 1/theta. 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.

References

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

Author

Thomas W. Yee

Note

Numerical instability may occur when theta is close to 0.

See also

Examples

   reciprocallink(1:5)
#> [1] 1.0000000 0.5000000 0.3333333 0.2500000 0.2000000
   reciprocallink(1:5, inverse = TRUE, deriv = 2)
#> [1]   2  16  54 128 250
negreciprocallink(1:5)
#> [1] -1.0000000 -0.5000000 -0.3333333 -0.2500000 -0.2000000
negreciprocallink(1:5, inverse = TRUE, deriv = 2)
#> [1]   2  16  54 128 250

x <- (-3):3
reciprocallink(x)  # Has Inf
#> [1] -0.3333333 -0.5000000 -1.0000000        Inf  1.0000000  0.5000000  0.3333333
reciprocallink(x, bvalue = .Machine$double.eps)  # Has no Inf
#> [1] -3.333333e-01 -5.000000e-01 -1.000000e+00  4.503600e+15  1.000000e+00
#> [6]  5.000000e-01  3.333333e-01