Learn R Programming

VGAM (version 0.9-3)

leipnik: Leipnik Distribution Family Function

Description

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

Usage

leipnik(lmu = "logit", llambda = "loge", 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$.

Value

Warning

If llambda="identity" then it is possible that the lambda estimate becomes less than $-1$, i.e., out of bounds. One way to stop this is to choose llambda = "loge", however, lambda is then constrained to be positive.

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)$.

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

Run this code
ldata <- data.frame(y = rnorm(n = 2000, mean = 0.5, sd = 0.1))  # Not proper data
fit <- vglm(y ~ 1, leipnik(ilambda = 1), ldata, trace = TRUE, checkwz = FALSE)
fit <- vglm(y ~ 1, leipnik(ilambda = 1, llambda = logoff(offset = 1)),
            ldata, trace = TRUE, crit = "coef")
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

Run the code above in your browser using DataLab