www.gusucode.com > stats 源码程序 matlab案例代码 > stats/PlotPDFAndCDFOfMultivariateTDistributionExample.m

    %% Plot PDF and CDF of Multivariate _t_-Distribution
%

% Copyright 2015 The MathWorks, Inc.


%%
% 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)

%%
% 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)