R: Leipnik Distribution Family Function

leipnik {VGAM} | R Documentation

## Leipnik Distribution Family Function

### Description

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

### Usage

    leipnik(lmu = "logit", llambda = logoff(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) = (y(1-y))^(-1/2) * (1 + (y-mu)^2 / (y*(1-y)))^(-lambda/2) / Beta((lambda+1)/2, 1/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(n = 2000, mean = 0.5, sd = 0.1))  # Not proper data
    fit <- vglm(y ~ 1, leipnik(ilambda = 1), data = 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

[Package VGAM version 1.0-3 Index]