[M,SD,Cx] = mean_removing_outliers(X,RMZEROVALS)
Compute the (non-parametric) robust mean (M) and the standard deviation (SD)
of a given vector or matrix (X). The resulting values are considered robust as they are
computed ITERATIVELY removing those observations that are classified as outliers.
Instead of using the classical "Tukey's Boxplot" method (where observation Xi
is considered outlier if Xi < Q1 - 1.5·IQR or Xi > Q3 + 1.5·IQR), this algorithm uses a slightly
different method to detect outliers. Here, Xi is considered an outlier if
Xi < Q1 - 1.5*(Q2-Q1) or Xi > Q3 + 1.5*(Q3-Q2). This method is more conservative
(as the interval containing valid observations is in general narrower than
that defined by Tukey's method, thus usually leading to a bigger no. of
detected outliers) but at the same time it is more "tailored" on the actual
NOTE: NaN values are excluded from the computation.
X : vector
RMZEROVALS : if '1', zero values are removed from the
computation. default RMZEROVALS is 0, meaning that
zero values are used in the computation.
M : Robust mean (i.e. computed after outliers removal)
SD : Robust Standard Deviation (i.e. computed after outliers removal)
Cx : vector of the conserved (i.e. non-outliers) observations
Ruggero G. Bettinardi (2023). mean_removing_outliers(X, RMZEROVALS) (https://www.mathworks.com/matlabcentral/fileexchange/62953-mean_removing_outliers-x-rmzerovals), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!