Я работаю над статистикой для сборок программного обеспечения. У меня есть данные для каждой сборки по пройденному / неудачному и истекшему времени, и мы генерируем ~ 200 из них / неделю.
Коэффициент успешности легко агрегируется, я могу сказать, что 45% прошли каждую данную неделю. Но я хотел бы также объединить прошедшее время, и я хочу убедиться, что я не искажаю данные слишком сильно. Подумал, я лучше спросить плюсы :-)
Скажем, у меня есть 10 продолжительности. Они представляют как успешные, так и неудачные случаи. Некоторые сборки терпят неудачу немедленно, что делает продолжительность необычно короткой. Некоторые зависают во время тестирования и в конечном итоге истекают, вызывая очень длительные периоды. Мы строим разные продукты, поэтому даже успешные сборки могут длиться от 90 секунд до 4 часов.
Я мог бы получить такой набор:
[50, 7812, 3014, 13400, 21011, 155, 60, 8993, 8378, 9100]
Мой первый подход состоял в том, чтобы получить среднее время, сортируя набор и выбирая среднее значение, в данном случае 7812 (я не беспокоился о среднем арифметическом для четных наборов).
К сожалению, это, кажется, вызывает много вариаций, так как я выбираю только одно заданное значение. Поэтому, если бы я изменил это значение, оно колебалось бы между 5000-10000 секундами, в зависимости от того, какая сборка была на медиане.
Поэтому, чтобы сгладить это, я попробовал другой подход - удалить выбросы и затем вычислить среднее значение по оставшимся значениям. Я решил разбить его на тертили и работать только над средним:
[50, 60, 155, 3014, 7812, 8378, 8993, 9100, 13400, 21011] ->
[50, 60, 155], [3014, 7812, 8378, 8993], [9100, 13400, 21011] ->
[3014, 7812, 8378, 8993]
Причина, по которой мне это кажется лучше, двоякая:
- Мы не хотим никаких действий на более быстрых сборках, они уже в порядке
- Самые длинные сборки, вероятно, вызваны тайм-аутом и всегда будут там. У нас есть другие механизмы для выявления этих
Так что мне кажется, что это данные, которые я ищу, но я беспокоюсь, что добился гладкости, удалив, ну, правда.
Является ли это спорно? Является ли метод вменяемым?
Благодарность!