Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

The probability density function of the *d*-dimensional
multivariate Student's *t* distribution is given
by

$$f(x,\Sigma ,\nu )=\frac{1}{{\left|\Sigma \right|}^{1/2}}\frac{1}{\sqrt{{(\nu \pi )}^{d}}}\frac{\Gamma ((\nu +d)/2)}{\Gamma (\nu /2)}{\left(1+\frac{{x}^{\prime}\text{}{\Sigma}^{-1}x}{\nu}\right)}^{-(\nu +d)/2}.$$

where *x* is a 1-by-*d* vector,
Σ is a *d*-by-*d* symmetric,
positive definite matrix, and *ν* is a positive
scalar. While it is possible to define the multivariate Student's *t* for
singular Σ, the density cannot be written as above. For the
singular case, only random number generation is supported. Note that
while most textbooks define the multivariate Student's *t* with *x* oriented
as a column vector, for the purposes of data analysis software, it
is more convenient to orient *x* as a row vector,
and Statistics and Machine Learning Toolbox™ software uses that orientation.

The multivariate Student's *t* distribution
is a generalization of the univariate Student's *t* to
two or more variables. It is a distribution for random vectors of
correlated variables, each element of which has a univariate Student's *t* distribution.
In the same way as the univariate Student's *t* distribution
can be constructed by dividing a standard univariate normal random
variable by the square root of a univariate chi-square random variable,
the multivariate Student's *t* distribution can
be constructed by dividing a multivariate normal random vector having
zero mean and unit variances by a univariate chi-square random variable.

The multivariate Student's *t* distribution
is parameterized with a correlation matrix, Σ, and a positive
scalar degrees of freedom parameter, *ν*. *ν* is
analogous to the degrees of freedom parameter of a univariate Student's *t* distribution.
The off-diagonal elements of Σ contain the correlations between
variables. Note that when Σ is the identity matrix, variables
are uncorrelated; however, they are not independent.

The multivariate Student's *t* distribution
is often used as a substitute for the multivariate normal distribution
in situations where it is known that the marginal distributions of
the individual variables have fatter tails than the normal.

Plot the pdf of a bivariate Student's *t* distribution. You can use this distribution for a higher number of dimensions as well, although visualization is not easy.

Rho = [1 .6; .6 1]; nu = 5; x1 = -3:.2:3; x2 = -3:.2:3; [X1,X2] = meshgrid(x1,x2); F = mvtpdf([X1(:) X2(:)],Rho,nu); F = reshape(F,length(x2),length(x1)); surf(x1,x2,F); caxis([min(F(:))-.5*range(F(:)),max(F(:))]); axis([-3 3 -3 3 0 .2]) xlabel('x1'); ylabel('x2'); zlabel('Probability Density');

Plot the cdf of a bivariate Student's *t* distribution.

F = mvtcdf([X1(:) X2(:)],Rho,nu); F = reshape(F,length(x2),length(x1)); surf(x1,x2,F); caxis([min(F(:))-.5*range(F(:)),max(F(:))]); axis([-3 3 -3 3 0 1]) xlabel('x1'); ylabel('x2'); zlabel('Cumulative Probability');

Since the bivariate Student's *t* distribution is defined on the plane, you can also compute cumulative probabilities over rectangular regions. For example, this contour plot illustrates the computation that follows, of the probability contained within the unit square shown in the figure.

contour(x1,x2,F,[.0001 .001 .01 .05:.1:.95 .99 .999 .9999]); xlabel('x'); ylabel('y'); line([0 0 1 1 0],[1 0 0 1 1],'linestyle','--','color','k');

Compute the value of the probability contained within the unit square.

F = mvtcdf([0 0],[1 1],Rho,nu)

F = 0.1401

Computing a multivariate cumulative probability requires significantly more work than computing a univariate probability. By default, the `mvtcdf`

function computes values to less than full machine precision and returns an estimate of the error, as an optional second output.

[F,err] = mvtcdf([0 0],[1 1],Rho,nu)

F = 0.1401 err = 1.0000e-08

Was this topic helpful?