Nalimov outlier test (non-iterative implementation)
[outlierfree] = ST_nalimov(v, p) [outlierfree, outlier] = ST_nalimov(v, p)
vector of numerical values
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).
input vector with all detected outliers removed; unchanged if the test does not identify an outlier
detected outliers in their original input order; [] if no outlier is detected
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.

![]() | 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. |
R. Kaiser, G. Gottschalk; "Elementare Tests zur Beurteilung von Meßdaten",BI Hochschultaschenbücher, Bd. 774, Bibliographisches Institut, Mannheim 1972.