<< ST_grubbs_iterat Outlier-Tests ST_outlier >>

samplestat >> samplestat > Outlier-Tests > ST_nalimov

ST_nalimov

Nalimov outlier test (non-iterative implementation)

Syntax

[outlierfree] = ST_nalimov(v, p)
[outlierfree, outlier] = ST_nalimov(v, p)

Arguments

v:

vector of numerical values

p:

statistical confidence level (%) as a string or the level of significance (α) as a decimal value, "95%", "99%", "99.9%" or 0.05, 0.01, 0.001 resp (see examples).

outlierfree :

input vector with all detected outliers removed; unchanged if the test does not identify an outlier

outlier :

detected outliers in their original input order; [] if no outlier is detected

Description

Performs a non-iterative Nalimov outlier screening based on the test statistic and critical values given by Kaiser/Gottschalk. Mean, sample standard deviation and qcrit are calculated once from the complete input vector. The q value is then calculated for every sample value. All values with q > qcrit are returned as outliers in one pass. No value is removed and retested within this function.

\begin{eqnarray}
q = \left | \frac{1}{s}(x_i- \bar{x}) \right | \sqrt{\frac{n}{n-1}} \quad &;& \quad q>q_{crit}\;\Rightarrow \; x_i=\text{outlier} \\ \\
x_i : \text{test value} \quad                &;& \quad \bar{x} : \text{arithmetic mean} \\
s   : \text{sample standard deviation} \quad &;& \quad        n: \text{number of values}
\end{eqnarray}

In contrast to the classical sequential elimination procedure, this implementation may therefore identify MORE THAN ONE OUTLIER in a single call.

Do use ST_nalimov ONLY with NORMAL distributed data and with 3 to 1002 values (corresponding to f = n-2 = 1 to 1000)!

Do use ST_nalimov with care. This historical Kaiser/Gottschalk procedure is controversially discussed in the scientific literature. This function deliberately implements a one-pass screening and can flag multiple values at once. For a conservative outlier test substitute Nalimov with Grubbs (ST_grubbs) or Dean-Dixon (ST_deandixon) for small sample sizes (<30) and Pearson-Hartley (ST_pearsonhartley) for larger ones (>30), or preferably the generalized Extreme Studentized Deviate test according to Rosner "ST_esd()" instead.

Examples

data = [6 8 14 12 35 15];
of = ST_nalimov(data, "95%")      // outlier-free values
[of, o] = ST_nalimov(data, "95%") // outlier and outlier-free values
[of, o] = ST_nalimov(data, 0.05)  // outlier and outlier-free values

See also

Authors

Bibliography

R. Kaiser, G. Gottschalk; "Elementare Tests zur Beurteilung von Meßdaten",BI Hochschultaschenbücher, Bd. 774, Bibliographisches Institut, Mannheim 1972.


Report an issue
<< ST_grubbs_iterat Outlier-Tests ST_outlier >>