Pracuję nad statystykami dla kompilacji oprogramowania. Mam dane dla każdego kompilacji na pass / fail i upływający czas i generujemy ~ 200 z nich / tydzień.
Wskaźnik skuteczności można łatwo agregować, mogę powiedzieć, że 45% minęło w danym tygodniu. Ale chciałbym również zsumować upływający czas i chcę się upewnić, że nie wprowadzam w błąd danych zbyt mocno. Pomyślałem, że lepiej zapytam profesjonalistów :-)
Powiedz, że mam 10 czasów trwania. Reprezentują zarówno przypadki zaliczenia, jak i niepowodzenia. Niektóre kompilacje kończą się niepowodzeniem natychmiast, co sprawia, że czas trwania jest niezwykle krótki. Niektóre zawieszają się podczas testowania i ostatecznie tracą czas, powodując bardzo długi czas trwania. Budujemy różne produkty, więc nawet udane kompilacje różnią się od 90 sekund do 4 godzin.
Mogę otrzymać taki zestaw:
[50, 7812, 3014, 13400, 21011, 155, 60, 8993, 8378, 9100]
Moje pierwsze podejście polegało na uzyskaniu mediany czasu przez posortowanie zbioru i wybranie wartości średniej, w tym przypadku 7812 (nie zawracałem sobie głowy średnią arytmetyczną dla zbiorów parzystych).
Niestety wydaje się, że generuje to dużą różnorodność, ponieważ wybieram tylko jedną podaną wartość. Gdybym więc miał tendencję do zmiany tej wartości, odbijałby się ona między 5000-10000 sekund w zależności od tego, która kompilacja była na środkowej.
Aby to wygładzić, wypróbowałem inne podejście - usuń wartości odstające, a następnie oblicz średnią dla pozostałych wartości. Postanowiłem podzielić go na tertyle i pracować tylko na środkowym:
[50, 60, 155, 3014, 7812, 8378, 8993, 9100, 13400, 21011] ->
[50, 60, 155], [3014, 7812, 8378, 8993], [9100, 13400, 21011] ->
[3014, 7812, 8378, 8993]
Powód, dla którego wydaje mi się to lepsze, jest dwojaki:
- Nie chcemy żadnych działań na szybszych kompilacjach, są już w porządku
- Najdłuższe wersje są prawdopodobnie spowodowane przekroczeniem limitu czasu i zawsze tam będą. Mamy inne mechanizmy do ich wykrywania
Wydaje mi się więc, że takich danych szukam, ale martwię się, że osiągnąłem gładkość, usuwając, no cóż, prawdę.
Czy to kontrowersyjne? Czy metoda jest rozsądna?
Dzięki!