| qmvt {mvtnorm} | R Documentation |
Computes the equicoordinate quantile function of the multivariate t
distribution for arbitrary correlation matrices
based on inversion of qmvt.
qmvt(p, interval = NULL, tail = c("lower.tail",
"upper.tail", "both.tails"), df = 1, delta = 0, corr = NULL,
sigma = NULL, algorithm = GenzBretz(),
type = c("Kshirsagar", "shifted"), ...)
p |
probability. |
interval |
optional, a vector containing the end-points of the interval to be searched. This argument is IGNORED since 1.0-3. |
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. |
... |
additional parameters to be passed to
|
Only equicoordinate quantiles are computed, i.e., the quantiles in each
dimension coincide. As of version 1.0-3, the distribution function is inverted by
minimising the squared difference of the distribution function and p. 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.
## 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))