leipnik: Leipnik Regression Family Function

View source: R/family.univariate.R

leipnikR Documentation

Leipnik Regression Family Function

Description

Estimates the two parameters of a (transformed) Leipnik distribution by maximum likelihood estimation.

Usage

leipnik(lmu = "logitlink", llambda = logofflink(offset = 1),
        imu = NULL, ilambda = NULL)

Arguments

lmu, llambda

Link function for the \mu and \lambda parameters. See Links for more choices.

imu, ilambda

Numeric. Optional initial values for \mu and \lambda.

Details

The (transformed) Leipnik distribution has density function

f(y;\mu,\lambda) = \frac{ \{ y(1-y) \}^{-\frac12}}{ \mbox{Beta}( \frac{\lambda+1}{2}, \frac12 )} \left[ 1 + \frac{(y-\mu)^2 }{y(1-y)} \right]^{ -\frac{\lambda}{2}}

where 0 < y < 1 and \lambda > -1. The mean is \mu (returned as the fitted values) and the variance is 1/\lambda.

Jorgensen (1997) calls the above the transformed Leipnik distribution, and if y = (x+1)/2 and \mu = (\theta+1)/2, then the distribution of X as a function of x and \theta is known as the the (untransformed) Leipnik distribution. Here, both x and \theta are in (-1, 1).

Value

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

Note

Convergence may be slow or fail. Until better initial value estimates are forthcoming try assigning the argument ilambda some numerical value if it fails to converge. Currently, Newton-Raphson is implemented, not Fisher scoring. Currently, this family function probably only really works for intercept-only models, i.e., y ~ 1 in the formula.

Author(s)

T. W. Yee

References

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

Johnson, N. L. and Kotz, S. and Balakrishnan, N. (1995). Continuous Univariate Distributions, 2nd edition, Volume 2, New York: Wiley. (pages 612–617).

See Also

mccullagh89.

Examples

ldata <- data.frame(y = rnorm(2000, 0.5, 0.1))  # Improper data
fit <- vglm(y ~ 1, leipnik(ilambda = 1), ldata, trace = TRUE)
head(fitted(fit))
with(ldata, mean(y))
summary(fit)
coef(fit, matrix = TRUE)
Coef(fit)

sum(weights(fit))  # Sum of the prior weights
sum(weights(fit, type = "work"))  # Sum of the working weights

VGAM documentation built on Sept. 18, 2024, 9:09 a.m.