Learn R Programming

VGAM (version 1.0-1)

hypersecant: 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.

Value

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

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) \times u^{-0.5+\theta/\pi} \times (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.

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

Run this code
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

Run the code above in your browser using DataLab