Probability density function, distribution function and random number generation for the multivariate skew-\(t\) (ST) and skew-Cauchy (SC) distributions.
dmst(x, xi=rep(0,length(alpha)), Omega, alpha, nu=Inf, dp=NULL, log=FALSE)
pmst(x, xi=rep(0,length(alpha)), Omega, alpha, nu=Inf, dp=NULL, ...)
rmst(n=1, xi=rep(0,length(alpha)), Omega, alpha, nu=Inf, dp=NULL)
dmsc(x, xi=rep(0,length(alpha)), Omega, alpha, dp=NULL, log=FALSE)
pmsc(x, xi=rep(0,length(alpha)), Omega, alpha, dp=NULL, ...)
rmsc(n=1, xi=rep(0,length(alpha)), Omega, alpha, dp=NULL)for dmst and dmsc, this is either a vector of length
d, where d=length(alpha), or a matrix with d columns,
representing the coordinates of the point(s) where the density must be
avaluated; for pmst and pmsc, only a vector of length
d is allowed.
a numeric vector of length d representing the
location parameter of the distribution; see ‘Background’.
In a call to dmst or dmsc, xi can be a matrix,
whose rows represent a set of location parameters;
in this case, its dimensions must match those of x.
a symmetric positive-definite matrix of dimension (d,d);
see Section ‘Background’.
a numeric vector of length d which regulates the slant
of the density; see Section ‘Background’.
Inf values in alpha are not allowed.
a positive value representing the degrees of freedom of
ST distribution; does not need to be integer.
Default value is nu=Inf which corresponds to the multivariate
skew-normal distribution.
a list with three elements named xi, Omega,
alpha and nu, containing quantities as described above. If
dp is specified, this prevents specification of the individual
parameters.
a numeric value which represents the number of random vectors to be
drawn; default value is 1.
logical (default value: FALSE); if TRUE,
log-densities are returned.
additional parameters passed to pmt.
A vector of density values (dmst and dmsc) or a single
probability (pmst and pmsc) or a matrix of random points
(rmst and rmsc).
The family of multivariate ST distributions is an extension of the
multivariate Student's \(t\) family, via the introduction of a alpha
parameter which regulates asymmetry; when alpha=0, the skew-\(t\)
distribution reduces to the commonly used form of multivariate Student's
\(t\). Further, location is regulated by xi and scale by
Omega, when its diagonal terms are not all 1's.
When nu=Inf the distribution reduces to the multivariate skew-normal
one; see dmsn. Notice that the location vector xi
does not represent the mean vector of the distribution (which in fact
may not even exist if nu <= 1), and similarly Omega is not
the covariance matrix of the distribution, although it is a
covariance matrix.
For additional information, see Section 6.2 of the reference below.
The family of multivariate SC distributions is the subset of the
ST family, obtained when nu=1. While in the univariate case
there are specialized functions for the SC distribution,
dmsc, pmsc and rmsc simply make a call to dmst,
pmst, rmst with argument nu set equal to 1.
Typical usages are
dmst(x, xi=rep(0,length(alpha)), Omega, alpha, nu=Inf, log=FALSE) dmst(x, dp=, log=FALSE) pmst(x, xi=rep(0,length(alpha)), Omega, alpha, nu=Inf, ...) pmst(x, dp=, ...) rmst(n=1, xi=rep(0,length(alpha)), Omega, alpha, nu=Inf) rmst(n=1, dp=) dmsc(x, xi=rep(0,length(alpha)), Omega, alpha, log=FALSE) dmsc(x, dp=, log=FALSE) pmsc(x, xi=rep(0,length(alpha)), Omega, alpha, ...) pmsc(x, dp=, ...) rmsc(n=1, xi=rep(0,length(alpha)), Omega, alpha) rmsc(n=1, dp=)
Function pmst requires dmt from package
mnormt; the accuracy of its computation can be controlled via
argument ….
Azzalini, A. with the collaboration of Capitanio, A. (2014). The Skew-Normal and Related Families. Cambridge University Press, IMS Monograph series.
dst, dsc, dmsn,
dmt, makeSECdistr
# NOT RUN {
x <- seq(-4,4,length=15)
xi <- c(0.5, -1)
Omega <- diag(2)
Omega[2,1] <- Omega[1,2] <- 0.5
alpha <- c(2,2)
pdf <- dmst(cbind(x,2*x-1), xi, Omega, alpha, 5)
rnd <- rmst(10, xi, Omega, alpha, 6)
p1 <- pmst(c(2,1), xi, Omega, alpha, nu=5)
p2 <- pmst(c(2,1), xi, Omega, alpha, nu=5, abseps=1e-12, maxpts=10000)
# }
Run the code above in your browser using DataLab