MATLAB: Fit distribution to probability plot

distributionfit

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!

Best Answer

  • 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)