powl {VGAM} | R Documentation

## Power Link Function

### Description

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

### Usage

    powl(theta, earg = list(power=1), inverse = FALSE, deriv = 0,
          short = TRUE, tag = FALSE)

### Arguments

`theta` | Numeric or character. See below for further details.
`earg` | List. Extra argument for passing in additional information. Here, the component name `power` denotes the power or exponent. This component name should not be abbreviated.
`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`.

### Details

The power link function raises a parameter by a certain value of `power`. Care is needed because it is very easy to get numerical problems, e.g., if `power=0.5` and `theta` is negative.

The arguments `short` and `tag` are used only if `theta` is character.

### Value

For `powl` with `deriv = 0`, then `theta` raised to the power of `power`. And if `inverse = TRUE` then `theta` raised to the power of `1/power`.
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.

### Note

Numerical problems may occur for certain combinations of `theta` and `power`. Consequently this link function should be used with caution.

### Author(s)

Thomas W. Yee

### See Also

`Links`, `loge`.

### Examples

    powl("a", earg=list(power=2), short=FALSE, tag=TRUE)

    powl(x <- 1:5)
    powl(x, earg=list(power=2))

    earg=list(power=2)
    max(abs(powl(powl(x, earg=earg), earg=earg, inverse=TRUE) - x)) # Should be 0

    powl(x <- (-5):5, earg=list(power=0.5))  # Has NAs

    # 1/2 = 0.5
    y = rbeta(n=1000, shape1=2^2, shape2=3^2)
    fit = vglm(y ~ 1, beta.ab(lshape1="powl", lshape2="powl",
               eshape1=list(power=0.5), eshape2=list(power=0.5), i1=3, i2=7))
    t(coef(fit, matrix=TRUE))
    Coef(fit)  # Useful for intercept-only models
    vcov(fit, untrans=TRUE)

[Package VGAM version 0.7-9 Index]