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)