MATLAB Answers

finding and removing outlier

10 views (last 30 days)
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!
  1 Comment
Sehoon Chang
Sehoon Chang on 6 Apr 2020
For the people know are looking for a matlab code explanation that solves above stated problem,
please have a look at the link.
It explains "rmoutlier" - which detects and removes outliers.

Sign in to comment.

Accepted Answer

John D'Errico
John D'Errico on 6 Apr 2020
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.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by