Fit distribution to probability plot

조회 수: 7(최근 30일)
Gustav Lindstrand
Gustav Lindstrand 2016년 11월 11일
댓글: Brendan Hamm 2016년 11월 11일
Is it possible to fit a Generalized Extreme Value distribution to a probability plot? I've got 31 annual highest values that I have plotted in a probabilty plot using >>probplot(a); and now I want a distribution fitted to the data Points. How can I do this?
I've tried using gevfit to find the parameters for the distribution and i tried plotting gevpdf(a,0,107,399) in a probability plot but it didn't give me what I wanted, I just got this:
but I want something looking like this:
Thanks!

채택된 답변

Brendan Hamm
Brendan Hamm 2016년 11월 11일
It looks like you are looking at comparing the Cumulative Distribution Function (CDF) with the Empirical Cumulative Distribution Function (ECDF) which is not the same as a probability plot.
I'll start by generating some random numbers from an EVD as I do not have your data:
rng('default')
a = gevrnd(0,107,399,100,1);
Next we need to fit the parameters of the distribution:
Mdl = fitdist(a,'GeneralizedExtremeValue'); % Returns a PD object (Requires MATLAB later than 2009)
You can then calculate the ECDF: [f,x] = ecdf(a); % plot(x,f)
Then calculate the CDF implied by the fitted parameters:
y = cdf(Mdl,x);
hold on
plot(x,y)
hold off
If you indeed wanted to look at a probability plot, you should know that by default probplot compares the data with a normal distribution. To change this, pass in the name of the distribution:
figure
probplot('extreme value',a)
  댓글 수: 2
Brendan Hamm
Brendan Hamm 2016년 11월 11일
The fit itself is defined on the entire support of the distribution. The PD objects are very useful for problems like what you mention. You can find a list of the methods (special functions) available for the PD objects.
methods(Mdl) % prints a list of the methods for the object.
To find the value at the 0.99 probability you would want the icdf method:
CDFval99 = icdf(Mdl,0.99)

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

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by