I have a joint density function for to independent variables X and Y. (See: http://dl.dropbox.com/u/709705/JointDens.png) And I now want to sample new x,y from this distribution.
What I believe I have to do is to find the joint cumulative distribution and then somehow sample from it. I kinda know how to do this in 1D, but I find it really hard to understand how to do it in 2D.
I also used the matlab-function cumtrapz to find the cumulative distribution function for the above pdf. (See: http://dl.dropbox.com/u/709705/CumulativeDist.png)
Just to be clear, what i want to do is to sample random values x,y from this empirical distribution.
Can someone please point me in the right direction here?!

 채택된 답변

Razvan
Razvan 2012년 4월 19일

2 개 추천

댓글 수: 3

Filip Trönnberg
Filip Trönnberg 2012년 4월 20일
pinky is a wonderful MATLAB-function. Thanks Razvan, and thanks Tristan Ursell for sharing it!! :)
Tristan Ursell
Tristan Ursell 2012년 7월 26일
Happy to help :)
Hussein Ammar
Hussein Ammar 2019년 7월 2일
Thank you for mentioning this function. It helped me a lot.

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

추가 답변 (2개)

Richard Brown
Richard Brown 2012년 4월 19일

1 개 추천

A really basic, quick to code (but darned inefficient way) is to generate uniform samples in the 3D volume defined by the x and y coordinates and the maximum z coordinate. Accept only samples that fall beneath the surface. The x,y coordinates of these samples will have the distribution you want.

댓글 수: 3

eitan eliav
eitan eliav 2019년 6월 11일
can you explain it better?
Atul Kedia
Atul Kedia 2019년 7월 21일
편집: Atul Kedia 2019년 7월 22일
Lets say the pdf is for variables and is denoted by .
You can imagine a 2-D distribution as a surface in 3 dimensions with undulations based on the distribution. The height of the surface above any point corresponds to its probability (distribution ). What he is suggesting is to sample uniformly over the range of (where maximum value that z takes = maximum value of the pdf, or , or the max height of the surface in 3-D).
If for the sampled () , then the coordinates are part of your randomly sampled points. If then the point need to be rejected and is not part of your sample.
Let me know if you have more questions.
Ahmadreza Momenisedei
Ahmadreza Momenisedei 2020년 9월 28일
편집: Ahmadreza Momenisedei 2020년 9월 28일
That was smart!

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

Tom Lane
Tom Lane 2012년 4월 19일

0 개 추천

There is a Statistics Toolbox function "slicesample" that could be useful. It does not generate independent samples from the distribution, but instead generates a Markov Chain such that a long sequence of values will have a distribution close to the target distribution. To use this, you would need to be able to write down an expression for the density.

카테고리

도움말 센터File Exchange에서 Random Number Generation에 대해 자세히 알아보기

질문:

2012년 4월 18일

편집:

2020년 9월 28일

Community Treasure Hunt

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

Start Hunting!

Translated by