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?

Réponses (3)

Matt Tearle
Matt Tearle le 9 Mar 2011
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
Adele le 10 Mar 2011

0 votes

Thanks for the advice, everyone!
I was able to ask my instructor and he told me to use the command "ecdf(input_data)" which gave me 2 matrices, one containing the temperature values I was given and the other contained the cdf values corresponding to the individual temperature values. From here, I was able to interpolate and find the exceedence probability.
I didn't try the other approaches because I am a beginner and didn't really understand what was going on.

1 commentaire

Matt Tearle
Matt Tearle le 11 Mar 2011
My code was intended to show how to do the interpolation (your question implied you already had the empirical CDF).

Connectez-vous pour commenter.

Catégories

Produits

Question posée :

le 9 Mar 2011

Community Treasure Hunt

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

Start Hunting!

Translated by