Learn R Programming

sn (version 0.33)

dmsn: Multivariate skew-normal distribution

Description

Probability density function, distribution function and random number generation for the multivariate skew-normal (MSN) distribution.

Usage

dmsn(x, xi=rep(0,d), Omega, alpha)
pmsn(x, xi=rep(0,d), Omega, alpha, ...)
rmsn(n=1, xi=rep(0,d), Omega, alpha)

Arguments

x
for dmsn, this is either a vector of length d or a matrix with d columns (where d=length(alpha)), giving the coordinates of the point(s) where the density must be avaluated; for pmsn, only
Omega
a positive-definite covariance matrix of dimension (d,d).
alpha
a numeric vector which regulates the shape of the density.
xi
a numeric vector of lenght d, or a matrix with d columns, representing the location parameter of the distribution. If xi is a matrix, its dimensions must agree with those of x.
n
a numeric value which represents the number of random vectors to be drawn.
...
additional parameters passed to pmvnorm

Value

  • A vector of density values (dmsn), or a single probability (pmsn) or a matrix of random points (rmsn).

Background

The multivariate skew-normal distribution is discussed by Azzalini and Dalla Valle (1996); the (Omega,alpha) parametrization adopted here is the one of Azzalini and Capitanio (1999).

Details

The positive-definiteness of Omega is not tested for efficiency reasons. Function pmsn requires pmvnorm from library(mvtnorm); the accuracy of its computation can be controlled via use of ...

References

Azzalini, A. and Dalla Valle, A. (1996). The multivariate skew-normal distribution. Biometrika 83, 715--726.

Azzalini, A. and Capitanio, A. (1999). Statistical applications of the multivariate skew-normal distribution. J.Roy.Statist.Soc. B 61, 579--602.

See Also

dsn, msn.fit, dmst, pmvnorm

Examples

Run this code
x <- seq(-3,3,length=15)
xi <- c(0.5, -1)
Omega <- diag(2)
Omega[2,1] <- Omega[1,2] <- 0.5
alpha <- c(2,2)
pdf <- dmsn(cbind(x,2*x-1), xi, Omega, alpha)
rnd <- rmsn(10,  xi, Omega, alpha)
library(mvtnorm)                        # only once in the session
cdf <- pmsn(c(2,1), xi, Omega, alpha)

Run the code above in your browser using DataLab