Skew-Normal Distribution

Share:

Description

Density function, distribution function, quantiles and random number generation for the skew-normal (SN) and the extended skew-normal (ESN) distribution.

Usage

1
2
3
4
dsn(x, xi=0, omega=1, alpha=0, tau=0, dp=NULL, log=FALSE)
psn(x, xi=0, omega=1, alpha=0, tau=0, dp=NULL, engine, ...)
qsn(p, xi=0, omega=1, alpha=0, tau=0, dp=NULL, tol=1e-8, solver="NR", ...) 
rsn(n=1, xi=0, omega=1, alpha=0, tau=0,  dp=NULL)

Arguments

x

vector of quantiles. Missing values (NA's) and Inf's are allowed.

p

vector of probabilities. Missing values (NAs) are allowed

xi

vector of location parameters.

omega

vector of scale parameters; must be positive.

alpha

vector of slant parameter(s); +/- Inf is allowed. With psn, it must be of length 1 if engine="T.Owen". With qsn, it must be of length 1.

tau

a single value representing the ‘hidden mean’ parameter of the ESN distribution; tau=0 (default) corresponds to a SN distribution.

dp

a vector of length 3 (in the SN case) or 4 (in the ESN case), whose components represent the individual parameters described above. If dp is specified, the individual parameters cannot be set.

n

sample size.

tol

a scalar value which regulates the accuracy of the result of qsn, measured on the probability scale.

log

logical flag used in dsn (default FALSE). When TRUE, the logarithm of the density values is returned.

engine

a character string which selects the computing engine; this is either "T.Owen" or "biv.nt.prob", the latter from package mnormt. If tau != 0 or length(alpha)>1, "biv.nt.prob" must be used. If this argument is missing, a default selection rule is applied.

solver

a character string which selects the numerical method used for solving the quantile equation; possible options are "NR" (default) and "RFB", described in the ‘Details’ section.

...

additional parameters passed to T.Owen

Value

density (dsn), probability (psn), quantile (qsn) or random sample (rsn) from the skew-normal distribution with given xi, omega and alpha parameters or from the extended skew-normal if tau!=0

Details

Typical usages are

1
2
3
4
5
6
7
8
dsn(x, xi=0, omega=1, alpha=0, log=FALSE)
dsn(x, dp=, log=FALSE)
psn(x, xi=0, omega=1, alpha=0,  ...)
psn(x, dp=,  ...)
qsn(p, xi=0, omega=1, alpha=0, tol=1e-8, ...)
qsn(x, dp=, ...)
rsn(n=1, xi=0, omega=1, alpha=0)
rsn(x, dp=)

psn and qsn make use of function T.Owen or biv.nt.prob

In qsn, the choice solver="NR" selects the Newton-Raphson method for solving the quantile equation, while option solver="RFB" alternates a step of regula falsi with one of bisection. The "NR" method is generally more efficient, but "RFB" is occasionally required in some problematic cases.

Background

The family of skew-normal distributions is an extension of the normal family, via the introdution of a alpha parameter which regulates asymmetry; when alpha=0, the skew-normal distribution reduces to the normal one. The density function of the SN distribution in the ‘normalized’ case having xi=0 and omega=1 is 2φ(x)Φ(α x), if φ and Φ denote the standard normal density and distribution function. An early discussion of the skew-normal distribution is given by Azzalini (1985); see Section 3.3 for the ESN variant, up to a slight difference in the parameterization.

An updated exposition is provided in Chapter 2 of Azzalini and Capitanio (2014); the ESN variant is presented Section 2.2. See Section 2.3 for an historical account. A multivariate version of the distribution is examined in Chapter 5.

References

Azzalini, A. (1985). A class of distributions which includes the normal ones. Scand. J. Statist. 12, 171-178.

Azzalini, A. with the collaboration of Capitanio, A. (2014). The Skew-Normal and Related Families. Cambridge University Press, IMS Monographs series.

See Also

Functions used by psn: T.Owen, biv.nt.prob

Related distributions: dmsn, dst, dmst

Examples

1
2
3
4
5
pdf <- dsn(seq(-3, 3, by=0.1), alpha=3)
cdf <- psn(seq(-3, 3, by=0.1), alpha=3)
q <- qsn(seq(0.1, 0.9, by=0.1), alpha=-2)
r <- rsn(100, 5, 2, 5)
qsn(1/10^(1:4), 0, 1, 5, 3, solver="RFB")  

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.