These functions provide information about the multivariate t
distribution with non-centrality parameter (or mode) delta,
scale matrix sigma and degrees of freedom df.
dmvt gives the density and rmvt
generates random deviates.
vector or matrix of quantiles. If x is a matrix, each
row is taken to be a quantile.
n
number of observations.
delta
the vector of noncentrality parameters of length n, for
type = "shifted" delta specifies the mode.
sigma
scale matrix, defaults to
diag(ncol(x)).
df
degrees of freedom. df = 0 or df = Inf
corresponds to the multivariate normal distribution.
log
logical indicating whether densities d
are given as log(d).
type
type of the noncentral multivariate t distribution.
type = "Kshirsagar" corresponds
to formula (1.4) in Genz and Bretz (2009) (see also
Chapter 5.1 in Kotz and Nadarajah (2004)). This is the
noncentral t-distribution needed for calculating
the power of multiple contrast tests under a normality
assumption. type = "shifted" corresponds to the
formula right before formula (1.4) in Genz and Bretz (2009)
(see also formula (1.1) in Kotz and Nadarajah (2004)). It
is a location shifted version of the central t-distribution.
This noncentral multivariate t distribution appears for
example as the Bayesian posterior distribution
for the regression coefficients in a linear regression.
In the central case both types coincide.
Note that the defaults differ from the default
in pmvt() (for reasons of backward
compatibility).
...
additional arguments to rmvnorm(),
for example method.
Details
If X denotes a random vector following a t distribution
with location vector 0 and scale matrix
Sigma (written X ~ t_nu(0,
Sigma)), the scale matrix (the argument
sigma) is not equal to the covariance matrix Cov(X)
of X. If the degrees of freedom nu (the
argument df) is larger than 2, then
Cov(X)=Sigma
nu/(nu-2). Furthermore,
in this case the correlation matrix Cor(X) equals
the correlation matrix corresponding to the scale matrix
Sigma (which can be computed with
cov2cor()). Note that the scale matrix is sometimes
referred to as “dispersion matrix”;
see McNeil, Frey, Embrechts (2005, p. 74).
For type = "shifted" the density
c(1+(x-δ)'S^{-1}(x-δ)/ν)^{-(ν+m)/2}
is implemented, where
c = Γ((ν+m)/2)/((π ν)^{m/2}Γ(ν/2)|S|^{1/2}),
S is a positive definite symmetric matrix (the matrix
sigma above), delta is the
non-centrality vector and nu are the degrees of freedom.
df=0 historically leads to the multivariate normal
distribution. From a mathematical point of view, rather
df=Inf corresponds to the multivariate normal
distribution. This is (now) also allowed for rmvt() and
dmvt().
Note that dmvt() has default log = TRUE, whereas
dmvnorm() has default log = FALSE.
References
McNeil, A. J., Frey, R., and Embrechts, P. (2005).
Quantitative Risk Management: Concepts, Techniques, Tools.
Princeton University Press.
See Also
pmvt() and qmvt()
Examples
## basic evaluation
dmvt(x = c(0,0), sigma = diag(2))
## check behavior for df=0 and df=Inf
x <- c(1.23, 4.56)
mu <- 1:2
Sigma <- diag(2)
x0 <- dmvt(x, delta = mu, sigma = Sigma, df = 0) # default log = TRUE!
x8 <- dmvt(x, delta = mu, sigma = Sigma, df = Inf) # default log = TRUE!
xn <- dmvnorm(x, mean = mu, sigma = Sigma, log = TRUE)
stopifnot(identical(x0, x8), identical(x0, xn))
## X ~ t_3(0, diag(2))
x <- rmvt(100, sigma = diag(2), df = 3) # t_3(0, diag(2)) sample
plot(x)
## X ~ t_3(mu, Sigma)
n <- 1000
mu <- 1:2
Sigma <- matrix(c(4, 2, 2, 3), ncol=2)
set.seed(271)
x <- rep(mu, each=n) + rmvt(n, sigma=Sigma, df=3)
plot(x)
## Note that the call rmvt(n, mean=mu, sigma=Sigma, df=3) does *not*
## give a valid sample from t_3(mu, Sigma)! [and thus throws an error]
try(rmvt(n, mean=mu, sigma=Sigma, df=3))
## df=Inf correctly samples from a multivariate normal distribution
set.seed(271)
x <- rep(mu, each=n) + rmvt(n, sigma=Sigma, df=Inf)
set.seed(271)
x. <- rmvnorm(n, mean=mu, sigma=Sigma)
stopifnot(identical(x, x.))