hypersecant: Hyperbolic Secant Regression Family Function

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/family.univariate.R

Description

Estimation of the parameter of the hyperbolic secant distribution.

Usage

1
2
  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

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

extlogitlink.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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

Example output

Loading required package: stats4
Loading required package: splines
VGLM    linear loop  1 :  coefficients = -0.010199661, -0.031471788
VGLM    linear loop  2 :  coefficients = -0.010185930, -0.031465241
VGLM    linear loop  3 :  coefficients = -0.010185939, -0.031465258
VGLM    linear loop  4 :  coefficients = -0.010185939, -0.031465258
            extlogitlink(theta, min = -1.5707963267949, max = 1.5707963267949)
(Intercept)                                                        -0.01018594
x2                                                                 -0.03146526
$theta
$theta$theta


$theta$min
-pi/2

$theta$max
pi/2

$theta$bminvalue
NULL

$theta$bmaxvalue
NULL

$theta$inverse
[1] FALSE

$theta$deriv
[1] 0

$theta$short
[1] TRUE

$theta$tag
[1] FALSE

attr(,"function.name")
[1] "extlogitlink"

VGLM    linear loop  1 :  loglikelihood = -146.25901
VGLM    linear loop  2 :  loglikelihood = -146.25901
                   theta
(Intercept) -0.008013784
x2          -0.024711166
$theta
$theta$theta


$theta$inverse
[1] FALSE

$theta$deriv
[1] 0

$theta$short
[1] TRUE

$theta$tag
[1] FALSE

attr(,"function.name")
[1] "identitylink"

VGAM documentation built on Jan. 16, 2021, 5:21 p.m.