MATLAB: Finding and removing outlier

dataseteliminating outliernormal distributionoutlierstandard deviation

Dear all,
I am trying to define, identify and remove outlier from my datset.
As you may see on the plot diagram, some data are significantly higher than others.
Letting X-axis be W and X-Axis idx, and defining outlying data that has 1) standard deviation above 2.24 or 2) top and bottom 2.5 % in a percentage analysis.
How may i set those above stated requiredments to find out the position of outlier in the data?
Thank you!

Best Answer

Your data does not appear to be normally distributed. Why not? There are no negative values, even though much of your data lies near zero, and a normal distribution has roughly equal weight in each tail.
That means talking about outliers on the bottom end is meaningless. There are no outliers down there, at least, none you can ever find in any meaningful way. So only outliers that go towards the plus side are ones that you can find.
I don't have your data, which makes it more difficult to cook up an example, because your data is a bit out of the ordinary. So I won't make up some data. Even so, you might...
  1. Compute the mean of your data, and the stadnard deviation.
  2. Subtract the mean, divide by the standard deviation.
  3. The result of step 2 are quasi-z-scores. Use find to identify any of those elements that are above some set value. Done.
You could also use a sort applied to the computed z-scores. Or if you have a recent matlab release, then just use the maxk function.