Я пишу сценарий, который анализирует время выполнения процессов. Я не уверен в их распространении, но хочу знать, выполняется ли процесс «слишком долго». До сих пор я использовал 3 стандартных отклонения времени последнего запуска (n> 30), но мне сказали, что это не дает ничего полезного, если данные не являются нормальными (что, похоже, не так). Я нашел другой тест на выбросы, в котором говорится:
Найти межквартильный диапазон, который равен IQR = Q3 - Q1, где Q3 - третий квартиль, а Q1 - первый квартиль. Затем найдите эти два числа:
а) Q1 - 1,5 * IQR b) Q3 + 1,5 * IQR
Точка является выбросом, если <a или> b
Мои данные обычно бывают такими, как 2 с, 3 с, 2 с, 5 с, 300 с, 4 с, .... где 300 с, очевидно, являются выбросом.
Какой метод лучше? Метод IQR или метод стандартного отклонения?
источник
Ответы:
Там действительно целые книги о выбросах.
Обычный конкретный ответ таков: стандартное отклонение определяется выбросами, поэтому любое правило, основанное на SD, может работать плохо.
Правила Тьюки для квартилей +/- 1,5 IQR, которые вы цитируете, были созданы вручную с небольшими и средними наборами данных в 1970-х годах и были разработаны для указания значений, о которых вы можете подумать индивидуально. Не ясно, что они переносятся на гораздо большие наборы данных или что они применяются, когда вы ожидаете значительной асимметрии.
Более общий ответ заключается в том, что правило выброса хорошо, если оно всегда принимает правильные решения, но как вы можете это определить?
Это спорная территория, но я ожидаю, что на графике будут выделяться выбросы, которые сильно отличаются от других. Но это часто (обычно?) Трудный вызов, чтобы определить разницу между тем, что вы ожидаете в дистрибутиве с тяжелыми хвостами, и тем, что слишком дико, чтобы воспринимать что-либо кроме постороннего. Иногда трансформация делает внешний вид гораздо более обычным.
Кроме того, если вы используете надежные методы, вы можете немного меньше беспокоиться о том, какие значения заслуживают того, чтобы их называли выбросами, но скорее беспокоитесь о выбросах в целом.
источник
Вы говорите, что не уверены в распределении, но текущие процессы легко собрать и оценить для распространения. Просто сэкономьте кучу раз и проанализируйте их. Учитывая время, которое вы разместили, вы можете получить много за несколько часов.
Ваш поиск правила для выброса не должен быть настолько общим. Это может быть специфичным для вашей задачи. Вы можете собрать много данных. Соберите его, изучите, а затем решите, когда процесс будет слишком долгим. Возможно, подойдет подход, основанный на IQR, но вы можете использовать свой набор данных или параметрическое соответствие для моделирования и проверки, хорошо ли он работает. То же самое касается SD. Возможно, что> 50-е - это слишком долго, и это все, что вам нужно.
источник