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

    %% Generate and Exponentiate Normal Random Variables
%

% Copyright 2015 The MathWorks, Inc.


%%
% The |lognrnd| function simulates independent lognormal random variables.
% In the following example, the |mvnrnd| function generates |n| pairs
% of independent normal random variables, and then exponentiates them.
% Notice that the covariance matrix used here is diagonal.
n = 1000;

sigma = .5;
SigmaInd = sigma.^2 .* [1 0; 0 1]

rng('default');  % For reproducibility
ZInd = mvnrnd([0 0],SigmaInd,n);
XInd = exp(ZInd);

plot(XInd(:,1),XInd(:,2),'.')
axis([0 5 0 5])
axis equal
xlabel('X1')
ylabel('X2')

%%
% Dependent bivariate lognormal random variables are also easy to generate
% using a covariance matrix with nonzero off-diagonal terms.
rho = .7;
 
SigmaDep = sigma.^2 .* [1 rho; rho 1]  

ZDep = mvnrnd([0 0],SigmaDep,n);
XDep = exp(ZDep);

%%
% A second scatter plot demonstrates the difference between these two
% bivariate distributions.
plot(XDep(:,1),XDep(:,2),'.')
axis([0 5 0 5])
axis equal
xlabel('X1')
ylabel('X2')

%%
% It is clear that there is a tendency in the second data set for large
% values of |X1| to be associated with large values of |X2|, and similarly
% for small values. The correlation parameter $\rho$ of the underlying
% bivariate normal determines this dependence. The conclusions drawn from
% the simulation could well depend on whether you generate |X1| and |X2|
% with dependence. The bivariate lognormal distribution is a simple
% solution in this case; it easily generalizes to higher dimensions in cases
% where the marginal distributions are different lognormals.

%%
% Other multivariate distributions also exist. For example, the multivariate
% _t_ and the Dirichlet distributions simulate dependent _t_ and beta
% random variables, respectively. But the list of simple multivariate
% distributions is not long, and they only apply in cases where the
% marginals are all in the same family (or even the exact same distributions).
% This can be a serious limitation in many situations.