필터 지우기
필터 지우기

cdf of multivariate normal random numbers

조회 수: 3 (최근 30일)
PChoppala
PChoppala 2013년 8월 8일
Hi
I want to find the cdf of a set of 1000 bivariate normal random numbers that are generated by
X=mvnrnd([3,12],[1,.2;.2,1],1000);
To obtain the cdf for a 1d distribution, I can evaluate the cumsum of the probability of each sample after the samples have been sorted in ascending order. But I am confused on how to do this for a bivariate or (for greater dimension) case. I appreciate you help on this.

답변 (1개)

Shashank Prasanna
Shashank Prasanna 2013년 8월 8일
  댓글 수: 2
PChoppala
PChoppala 2013년 8월 8일
To get the cdf I only have X. Is the below piece of code is a correct way of obtaining that (or what you are referring to)?
X=mvnrnd([3,12],[1,.3;.3,1],625);
mu=mean(X);
Sigma=corrcoef(X);
N=25;
[X1,X2] = meshgrid(linspace(1,5,N)', linspace(9,15,N)');
XX = [X1(:) X2(:)];
C = mvncdf(XX, mu, Sigma);
contour(X1,X2,reshape(C,N,N));
Shashank Prasanna
Shashank Prasanna 2013년 8월 8일
It is correct for what it is doing. Also, you already have the means and covariance:
[3,12] and [1,0.3;0.3,1]
1) You don't don't have to re estimate them you can use them directly.
2) MVNCDF expects the Covariance and not correlation matrix. Use COV function instead.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by