MATLAB Answers

Inverse Cumulative Distribution Function for a Custom PDF.

45 ビュー (過去 30 日間)
Emiliano Rosso
Emiliano Rosso 2020 年 3 月 6 日
コメント済み: Emiliano Rosso 2020 年 3 月 8 日
I'm looking for a function similar to norminv in wich you can sample data at the probability values in the vector p according to the normal distribution but I need to make it according to a custom probability distribution instead of the normal, always in the vector p but without the use of the original dataset wich generated the custom PDF.
Or in other words a icdf for a custom PDF function....Thanks!


Jeff Miller
Jeff Miller 2020 年 3 月 7 日
If you have the custom PDF function (call it custPDF), then you can compute the custom CDF function something like this:
function p = custCDF(x)
p = integral(@custPDF,LowerBound,x); % Modify AbsTol and RelTol to suit your needs
where LowerBound is some minimal value for your custom distribution.
Then you should be able to get the inverse CDF with this:
function x = custiCDF(p)
x = fzero( @(x) custCDF(x)-p, [LowerBound,UpperBound] );
where UpperBound is a maximal value.
It might be pretty slow, but it should work.
  3 件のコメント
Emiliano Rosso
Emiliano Rosso 2020 年 3 月 8 日
No,I misunderstood,I must call custiCDF for each one,


その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by