Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

skewnormal

Univariate Skew-Normal Distribution Family Function


Description

Maximum likelihood estimation of the shape parameter of a univariate skew-normal distribution.

Usage

skewnormal(lshape = "identitylink", ishape = NULL, nsimEIM = NULL)

Arguments

lshape, ishape, nsimEIM

See Links and CommonVGAMffArguments.

Details

The univariate skew-normal distribution has a density function that can be written

f(y) = 2 * phi(y) * Phi(alpha * y)

where alpha is the shape parameter. Here, phi is the standard normal density and Phi its cumulative distribution function. When alpha=0 the result is a standard normal distribution. When alpha=1 it models the distribution of the maximum of two independent standard normal variates. When the absolute value of the shape parameter increases the skewness of the distribution increases. The limit as the shape parameter tends to positive infinity results in the folded normal distribution or half-normal distribution. When the shape parameter changes its sign, the density is reflected about y=0.

The mean of the distribution is mu=alpha*sqrt(2/(pi*(1+alpha^2))) and these are returned as the fitted values. The variance of the distribution is 1-mu^2. The Newton-Raphson algorithm is used unless the nsimEIM argument is used.

Value

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

Warning

It is well known that the EIM of Azzalini's skew-normal distribution is singular for skewness parameter tending to zero, and thus produces influential problems.

Note

It is a good idea to use several different initial values to ensure that the global solution is obtained.

This family function will be modified (hopefully soon) to handle a location and scale parameter too.

Author(s)

Thomas W. Yee

References

Azzalini, A. A. (1985). A class of distributions which include the normal. Scandinavian Journal of Statistics, 12, 171–178.

Azzalini, A. and Capitanio, A. (1999). Statistical applications of the multivariate skew-normal distribution. Journal of the Royal Statistical Society, Series B, Methodological, 61, 579–602.

See Also

Examples

sdata <- data.frame(y1 = rskewnorm(nn <- 1000, shape = 5))
fit1 <- vglm(y1 ~ 1, skewnormal, data = sdata, trace = TRUE)
coef(fit1, matrix = TRUE)
head(fitted(fit1), 1)
with(sdata, mean(y1))
## Not run:  with(sdata, hist(y1, prob = TRUE))
x <- with(sdata, seq(min(y1), max(y1), len = 200))
with(sdata, lines(x, dskewnorm(x, shape = Coef(fit1)), col = "blue")) 
## End(Not run)

sdata <- data.frame(x2 = runif(nn))
sdata <- transform(sdata, y2 = rskewnorm(nn, shape = 1 + 2*x2))
fit2 <- vglm(y2 ~ x2, skewnormal, data = sdata, trace = TRUE, crit = "coef")
summary(fit2)

VGAM

Vector Generalized Linear and Additive Models

v1.1-5
GPL-3
Authors
Thomas Yee [aut, cre], Cleve Moler [ctb] (author of several LINPACK routines)
Initial release
2021-01-13

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.