dmvsnorm
Multivariate Skew Normal Density,
pmvsnorm
Multivariate Skew Normal Probability,
rmvsnorm
Random Deviates from MV Skew Normal Distribution,
dmvst
Multivariate Skew Student Density,
pmvst
Multivariate Skew Student Probability,
rmvst
Random Deviates from MV Skew Student Distribution,
mvFit
Fits a MV Skew Normal or Student-t Distribution,
print
S3 print method for an object of class 'fMV',
plot
S3 Plot method for an object of class 'fMV',
summary
S3 summary method for an object of class 'fMV'. }
These functions are useful for portfolio selection and optimization
if one likes to model the data by multivariate normal, skew normal,
or skew Student-t distribution functions.dmvsnorm(x, dim = 2, mu = rep(0, dim), Omega = diag(dim), alpha = rep(0, dim))
pmvsnorm(q, dim = 2, mu = rep(0, dim), Omega = diag(dim), alpha = rep(0, dim))
rmvsnorm(n, dim = 2, mu = rep(0, dim), Omega = diag(dim), alpha = rep(0, dim))dmvst(x, dim = 2, mu = rep(0, dim), Omega = diag(dim), alpha = rep(0, dim), df = 4)
pmvst(q, dim = 2, mu = rep(0, dim), Omega = diag(dim), alpha = rep(0, dim), df = 4)
rmvst(n, dim = 2, mu = rep(0, dim), Omega = diag(dim), alpha = rep(0, dim), df = 4)
mvFit(x, method = c("snorm", "st"), fixed.df = NA, title = NULL,
description = NULL, trace = FALSE, ...)
## S3 method for class 'fMV':
show(object)
## S3 method for class 'fMV':
plot(x, which = "ask", \dots)
## S3 method for class 'fMV':
summary(object, which = "ask", doplot = TRUE, \dots)
"fMV"
object.x
. If x
is
specified as a vector, dim=1
must be set to one.NA
, the default, or a numeric value assigning the
number of degrees of freedom to the model. In the case that
fixed.df=NA
the value of df
will be included in the
optimization process, method="snorm"
or
method="st"
, in the first case the parameters for a
skew normal distribution will bmu
a vector of mean values, one for each column,
Omega
the covariance matrix,
alpha
the skewness vector, and
df
the number of degrees of freedom which is a fMV
."fMV"
object.TRUE
the optimization process will
be traced, otherwise not. The default setting is FALSE
.which
can
be either a character string, "all"
(displays all plots)
or "ask"
(interactively asks which one to display), or a
vector of 5 logical as.matrix
to an
ob[dp]mvsnorm
[dp]mvst
return a vector of density and probability values computed from
the matrix x
.
mvFit
returns a S4 object class of class "fASSETS"
, with the following
slots:"snorm"
, or "st"
.model=list(mu, Omega, alpha, df
.@fit
slot is a list with the following compontents:
(Note, not all are documented here).dim(beta)=c(nrow(X), ncol(y))
, Omega
is a
covariance matrix of order dim
, alpha
is
a vector of shape parameters of length dim
.optim
; see the
documentation of this function for explanation of its
components.print
is the S3 print method for objects of class "fMV"
returned
from the function mvFit
. If shows a summary report of
the parameter fit.
plot
is the S3 plot method for objects of class "fMV"
returned
from the function mvFit
. Five plots are produced.
The first plot produces a scatterplot and in one dimension an
histogram plot with the fitted distribution superimposed.
The second and third plot represent a QQ-plots of Mahalanobis
distances. The first of these refers to the fitting
of a multivariate normal distribution, a standard statistical
procedure; the second gives the corresponding QQ-plot of
suitable Mahalanobis distances for the multivariate skew-normal
fit. The fourth and fivth plots are similar to the previous ones,
except that PP-plots are produced. The plots can be displayed
in several ways, depending an the argument which
, for
details we refer to the arguments list above. summary
is the S3 summary method for objects of class "fMV"
returned
from the function mvFit
. The summary method prints and plots
in one step the results as done by the print
and plot
methods.
sn
and mtvnorm
.
For an extended functionality in modelling multivariate skew normal
and Student-t distributions we recommend to download and use the
functions from the original package sn
which requires also the
package mtvnorm
.
The algorithm for the computation of the normal and Student-t
distribution functions is described by Genz (1992) and (1993),
and its implementation by Hothorn, Bretz, and Genz (2001).
The parameter estimation is done by the maximum log-likelihood
estimation. The algorithm and the implemantation was done by
Azzalini (1985-2003).
The multivariate skew-normal distribution is discussed in detail
by Azzalini and Dalla Valle (1996); the (Omega,alpha)
parametrization adopted here is the one of Azzalini and
Capitanio (1999).
The family of multivariate skew-t distributions is an extension of
the multivariate Student's t family, via the introduction of a
shape parameter which regulates skewness; for a zero shape parameter
the skew Student-t distribution reduces to the usual t distribution.
When df = Inf
the distribution reduces to the multivariate
skew-normal one.
The plot facilities have been completely reimplemented. The S3 plot
method allows for selective batch and interactive plots. The
argument which
takes care for the desired operation.
The contributed R package mvtnorm
is required, the contributed
R package sn
is builtin, since it is not available on the
Debian Software Server.Azzalini A. (1986); Further Results on a Class of Distributions Which Includes the Normal Ones, Statistica 46, 199--208.
Azzalini A., Dalla Valle A. (1996); The Multivariate Skew-normal Distribution, Biometrika 83, 715--726.
Azzalini A., Capitanio A. (1999); Statistical Applications of the Multivariate Skew-normal Distribution, Journal Roy. Statist. Soc. B61, 579--602.
Azzalini A., Capitanio A. (2003); Distributions Generated by Perturbation of Symmetry with Emphasis on a Multivariate Skew-t Distribution, Journal Roy. Statist. Soc. B65, 367--389. Genz A., Bretz F. (1999); Numerical Computation of Multivariate t-Probabilities with Application to Power Calculation of Multiple Contrasts, Journal of Statistical Computation and Simulation 63, 361--378.
Genz A. (1992); Numerical Computation of Multivariate Normal Probabilities, Journal of Computational and Graphical Statistics 1, 141--149. Genz A. (1993); Comparison of Methods for the Computation of Multivariate Normal Probabilities, Computing Science and Statistics 25, 400--405. Hothorn T., Bretz F., Genz A. (2001); On Multivariate t and Gauss Probabilities in R, R News 1/2, 27--29.
## rmvst -
par(mfcol = c(3, 1), cex = 0.7)
r1 = rmvst(200, dim = 1)
ts.plot(as.ts(r1), xlab = "r", main = "Student-t 1d")
r2 = rmvst(200, dim = 2, Omega = matrix(c(1, 0.5, 0.5, 1), 2))
ts.plot(as.ts(r2), xlab = "r", col = 2:3, main = "Student-t 2d")
r3 = rmvst(200, dim = 3, mu = c(-1, 0, 1), alpha = c(1, -1, 1), df = 5)
ts.plot(as.ts(r3), xlab = "r", col = 2:4, main = "Skew Student-t 3d")
## mvFit -
# Generate Grid Points:
n = 51
x = seq(-3, 3, length = n)
xoy = cbind(rep(x, n), as.vector(matrix(x, n, n, byrow = TRUE)))
X = matrix(xoy, n * n, 2, byrow = FALSE)
head(X)
# The Bivariate Normal Case:
Z = matrix(dmvsnorm(X, dim = 2), length(x))
par (mfrow = c(2, 2), cex = 0.7)
persp(x, x, Z, theta = -40, phi = 30, col = "steelblue")
title(main = "Bivariate Normal Plot")
image(x, x, Z)
title(main = "Bivariate Normal Contours")
contour(x, x, Z, add = TRUE)
# The Bivariate Skew-Student-t Case:
mu = c(-0.1, 0.1)
Omega = matrix(c(1, 0.5, 0.5, 1), 2)
alpha = c(-1, 1)
Z = matrix(dmvst(X, 2, mu, Omega, alpha, df = 3), length(x))
persp(x, x, Z, theta = -40, phi = 30, col = "steelblue")
title(main = "Bivariate Student-t Plot")
image(x, x, Z)
contour(x, x, Z, add = TRUE)
title(main = "Bivariate Student-t Contours")
Run the code above in your browser using DataLab