Computes the equicoordinate quantile function of the multivariate t
distribution for arbitrary correlation matrices
based on inversion of qmvt
.
1 2 3 4 5 
p 
probability. 
interval 
optional, a vector containing the endpoints of the interval to be searched. Does not need to contain the true quantile, just used as starting values by the rootfinder. If equal to NULL a guess is used. 
tail 
specifies which quantiles should be computed.

delta 
the vector of noncentrality parameters of length n, for

df 
degree of freedom as integer. Normal quantiles are computed
for 
corr 
the correlation matrix of dimension n. 
sigma 
the covariance matrix of dimension n. Either 
algorithm 
an object of class 
type 
type of the noncentral multivariate t distribution
to be computed. 
ptol, maxiter, trace 
Parameters passed to the stochastic rootfinding
algorithm. Iteration stops when the 95% confidence interval
for the predicted quantile is inside [pptol, p+ptol]. 
... 
additional parameters to be passed to

Only equicoordinate quantiles are computed, i.e., the quantiles in each dimension coincide. The result is seed dependend.
A list with two components: quantile
and f.quantile
give the location of the quantile and the difference between the distribution
function evaluated at the quantile and p
.
pmvnorm
, qmvnorm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34  ## basic evaluation
qmvt(0.95, df = 16, tail = "both")
## check behavior for df=0 and df=Inf
Sigma < diag(2)
set.seed(29)
q0 < qmvt(0.95, sigma = Sigma, df = 0, tail = "both")$quantile
set.seed(29)
q8 < qmvt(0.95, sigma = Sigma, df = Inf, tail = "both")$quantile
set.seed(29)
qn < qmvnorm(0.95, sigma = Sigma, tail = "both")$quantile
stopifnot(identical(q0, q8),
isTRUE(all.equal(q0, qn, tol = (.Machine$double.eps)^(1/3))))
## if neither sigma nor corr are provided, corr = 1 is used internally
df < 0
set.seed(29)
qt95 < qmvt(0.95, df = df, tail = "both")$quantile
set.seed(29)
qt95.c < qmvt(0.95, df = df, corr = 1, tail = "both")$quantile
set.seed(29)
qt95.s < qmvt(0.95, df = df, sigma = 1, tail = "both")$quantile
stopifnot(identical(qt95, qt95.c),
identical(qt95, qt95.s))
df < 4
set.seed(29)
qt95 < qmvt(0.95, df = df, tail = "both")$quantile
set.seed(29)
qt95.c < qmvt(0.95, df = df, corr = 1, tail = "both")$quantile
set.seed(29)
qt95.s < qmvt(0.95, df = df, sigma = 1, tail = "both")$quantile
stopifnot(identical(qt95, qt95.c),
identical(qt95, qt95.s))

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
All documentation is copyright its authors; we didn't write any of that.