Learn R Programming

VGAM (version 1.1-14)

hypersecant: Hyperbolic Secant Regression Family Function

Description

Estimation of the parameter of the hyperbolic secant distribution.

Usage

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

Arguments

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

gensh, extlogitlink.

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, hdata, trace = TRUE, crit = "c")
coef(fit1, matrix = TRUE)
fit1@misc$earg

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

Run the code above in your browser using DataLab