sample from arbitrary continuous distribution

4 ビュー (過去 30 日間)
Xin
Xin 2017 年 1 月 8 日
コメント済み: Xin 2017 年 2 月 20 日
Say I have a very complicated probability distribution function: x^(-2)*y^(-3)*exp(-z/t), where x y z t are all continuous positive numbers. The integration in x,y,z,t space is not 1, so there has to be some scaling factor. How can I devise a function, or is there a convenient function with some symbolic that allows me to sample a random, continuous set of numbers from this distribution? What if I want to sample a full conditional distribution, say x, with y,z,t as known?
Many thanks.
  1 件のコメント
the cyclist
the cyclist 2017 年 1 月 8 日
Are your x, y, and z correlated with each other, or independent?

サインインしてコメントする。

採用された回答

the cyclist
the cyclist 2017 年 1 月 8 日
編集済み: the cyclist 2017 年 1 月 9 日
There are two key elements to your problem:
  • Sampling from an arbitrary distribution
  • Sampling from a multivariate distribution (and are those variables correlated?)
To do the first part -- for example just getting samples from x^(-2) -- there is a method using the inverse of the cdf. I suggest you take a look at this thread in the old MATLAB forum to get started.
If you have independent variables, then you can just multiply the distributions of each variable. If you have dependent variables, then your best bet is to use the copula approach.
There are examples in that documentation that will help you get started. I suggest that you try some baby steps for each of these two parts, so that you build your understanding, rather than trying to solve your whole problem at once.
  1 件のコメント
Xin
Xin 2017 年 2 月 20 日
Thank you for your answer, I have got it working.

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by