why does probplot return negative/larger than 1 values ?

3 Ansichten (letzte 30 Tage)
Itzik Ben Shabat
Itzik Ben Shabat am 9 Okt. 2015
Kommentiert: Tom Lane am 24 Okt. 2015
Hi,
h=probplot(Y);
is supposed to show the probability distrbution of the values in Y. so probability cant be negative or larger than 1 but if i check
get(h,'ydata');
it has both negative values and values larger than 1. how is that possible ? perhaps i misunderstood something?

Antworten (2)

Walter Roberson
Walter Roberson am 9 Okt. 2015
get(h,'ydata') is going to return whatever data the routine needed to generate in order to plot nicely. If you look at the y axis locations you can see that the spacing is not nearly equidistant in probability value, with values being close together near the middle and further apart near the top or bottom.
A plausible explanation would be that the data stored is in terms of standard deviations from mean 0.5
  3 Kommentare
Walter Roberson
Walter Roberson am 9 Okt. 2015
http://www.mathworks.com/help/stats/cdf.html if you know the probability distribution. If you do not know the probability distribution and want to find the "best" fit, then you would use other routines.
Tom Lane
Tom Lane am 24 Okt. 2015
For a normal distribution, Walter is correct. The plot is constructed from standard normal values on the Y axis. The ticks are positioned and labeled, though, to indicate the probability values rather than the normal values. For instance, the tick mark labeled 0.75 is at the position where the plotted points have the value y=norminv(.75). Why all this? Because this construction (y values from standard normal) means that x data having a normal distribution with any mean or standard deviation will look roughly linear. If the points had been plotted with y data on the probability scale (rather than just labeled with those values), we would not have this simple linear relationship.

Melden Sie sich an, um zu kommentieren.


Image Analyst
Image Analyst am 10 Okt. 2015
In the Statistics and Machine Learning Toolbox:
[f,xi] = ksdensity(x,pts) returns a probability density estimate, f, for the sample in the vector x, evaluated at the specified values in vector pts. Here, the xi and pts vectors contain identical values.
[pdca,gn,gl] = fitdist(x,distname,'By',groupvar) creates probability distribution objects by fitting the distribution specified by distname to the data in x based on the grouping variable groupvar. It returns a cell array of fitted probability distribution objects, pdca, a cell array of group labels, gn, and a cell array of grouping variable levels, gl.
  3 Kommentare
Walter Roberson
Walter Roberson am 11 Okt. 2015
I am unclear as to the task here. Is it to figure out which probability distribution something is? Is it to estimate the probability distribution? Is it to assume that the data is already normally distributed and to figure out the probability of each sample relative to the known distribution?
If the task is to figure out which probability distribution something is, then you need to use one of the fitting routines.
If the task is to estimate the shape of the probability distribution, then ksdensity() is appropriate.
If the task is to figure out the probability of each sample relative to the known distribution then the cdf() function I linked to above is what should be used.
Image Analyst
Image Analyst am 11 Okt. 2015
To give a probability, you'd have to give a range, like the probability you'll get a value between 0.42 and 0.43 or whatever. You can use the CDF for that like Walter says. Do you have such a range? Because the probability of an exact value is zero for continuous functions, though it is non-zero for discrete data sets like a quantized image of 256 gray levels.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by