R: Hyperbolic Secant Distribution Family Function

hypersecant {VGAM} | R Documentation

## Hyperbolic Secant Distribution Family Function

### Description

Estimation of the parameter of the hyperbolic secant distribution.

### Usage

      hypersecant(link.theta = extlogit(min = -pi/2, max = pi/2), init.theta = NULL)
    hypersecant01(link.theta = extlogit(min = -pi/2, max = pi/2), init.theta = NULL)

### Arguments

`link.theta` | Parameter link function applied to the parameter theta. See `Links` for more choices.
`init.theta` | Optional initial value for theta. If failure to converge occurs, try some other value. The default means an initial value is determined internally.

### Details

The probability density function of the hyperbolic secant distribution is given by

f(y; theta) = exp(theta*y + log(cos(theta))) / (2*cosh(pi*y/2)),

for parameter -pi/2 < theta < pi/2 and all real y. The mean of Y is tan(theta) (returned as the fitted values). Morris (1982) calls this model NEF-HS (Natural Exponential Family-Hyperbolic Secant). It is used to generate NEFs, giving rise to the class of NEF-GHS (G for Generalized).

Another parameterization is used for `hypersecant01()`: let Y = (logit U) / pi. Then this uses

f(u;theta) = (cos(theta)/pi) * u^(-0.5+theta/pi) * (1-u)^(-0.5-theta/pi),

for parameter -pi/2 < theta < pi/2 and 0 < u < 1. Then the mean of U is 0.5 + theta/pi (returned as the fitted values) and the variance is (pi^2 - 4*theta^2) / (8*pi^2).

For both parameterizations Newton-Raphson is same as Fisher scoring.

### Value

An object of class `"vglmff"` (see `vglmff-class`). The object is used by modelling functions such as `vglm`, and `vgam`.

### Author(s)

T. W. Yee

### References

Jorgensen, B. (1997) The Theory of Dispersion Models. London: Chapman & Hall.

Morris, C. N. (1982) Natural exponential families with quadratic variance functions. The Annals of Statistics, 10(1), 65–80.

### See Also

`extlogit`.

### Examples

    hdata <- data.frame(x2 = rnorm(nn <- 200))
    hdata <- transform(hdata, y = rnorm(nn))  # Not very good data!
    fit1 <- vglm(y ~ x2, hypersecant, data = hdata, trace = TRUE, crit = "coef")
    coef(fit1, matrix = TRUE)
    fit1@misc$earg

    # Not recommended:
    fit2 <- vglm(y ~ x2, hypersecant(link = "identitylink"), data = hdata, trace = TRUE)
    coef(fit2, matrix = TRUE)
    fit2@misc$earg

[Package VGAM version 1.0-3 Index]