dsn: Skew-Normal Distribution

View source: R/sn-funct.R

dsnR Documentation

Skew-Normal Distribution


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


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)



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


vector of probabilities. Missing values (NAs) are allowed


vector of location parameters.


vector of scale parameters; must be positive.


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.


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


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.


a positive integer representing the sample size.


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


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


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.


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


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


Typical usages are

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.

In version 1.6-2, the random number generation method for rsn has changed; the so-called transformation method (also referred to as the ‘additive representation’) has been adopted for all values of tau. Also, the code has been modified so that there is this form of consistency: provided set.seed() is reset similarly before calls, code like rsn(5, dp=1:3) and rsn(10, dp=1:3), for instance, will start with the same initial values in the longer sequence as in the shorter sequence.


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.


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


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")  

sn documentation built on Aug. 11, 2022, 5:10 p.m.