HELP! Reading a probability from a CDF plot
古いコメントを表示
I have created a CDF plot of some temperature data, and I need to find exceedence probability. Is there a way to input a specific number (i.e. an x-value) and have MATLAB return the exceedence probability?
回答 (3 件)
Oleg Komarov
2011 年 3 月 9 日
0 投票
Oleg
Matt Tearle
2011 年 3 月 9 日
You basically want an inverse CDF calculation (based on measured data, rather than a formula)?
% Make some fake data
x = -4:0.2:4;
y = (1+tanh(x))/2;
% Pick a probability
yval = 0.72;
% Interpolate to find x such that y(x) = yval
f = @(t) interp1(x,y,t,'pchip') - yval;
xval = x(find(y>=yval,1,'first'))
xval = fzero(f,xval)
% See the result
plot(x,y,'o-',xval,yval,'*')
The idea is to find the first data point that exceeds the given probability, then use that as an initial guess to a root-finding algorithm to find the actual x such that y(x) = prob. The tricky thing is that you have to interpolate to get a function to do root-finding on. Hence the use of interp1.
Adele
2011 年 3 月 10 日
0 投票
1 件のコメント
Matt Tearle
2011 年 3 月 11 日
My code was intended to show how to do the interpolation (your question implied you already had the empirical CDF).
カテゴリ
ヘルプ センター および File Exchange で Descriptive Statistics and Visualization についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!