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!
Odpowiedzi:
Twoje podejście ma dla mnie sens, biorąc pod uwagę twój cel. To proste, proste, wykonuje pracę i prawdopodobnie nie chcesz pisać o tym pracy naukowej.
Jedną rzeczą, którą należy zawsze robić w przypadku wartości odstających, jest ich zrozumienie , a ty już świetnie sobie z tym radzisz . Możliwymi sposobami ulepszenia twojego podejścia byłyby: czy możesz użyć informacji, na których kompilacjach się zawieszają? Wspominasz, że masz „inne mechanizmy do ich wykrywania” - czy możesz je wykryć, a następnie usunąć tylko te z próbki?
W przeciwnym razie, jeśli masz więcej danych, możesz pomyśleć o usunięciu nie tercyli, ale kwintyli ... ale w pewnym momencie prawdopodobnie nie zrobi to dużej różnicy.
źródło
To, co robisz, jest znane jako środek przycięty .
Jak już to zrobiłeś, często przycinasz tę samą proporcję z każdej strony (proporcja przycinania).
Możesz przyciąć wszystko od 0% (zwykła średnia) do (prawie) 50% (co daje medianę). Twój przykład ma 30% przycięte z każdego końca.
Zobacz tę odpowiedź i odpowiedni artykuł w Wikipedii .
[Edytuj: Zobacz doskonałą dyskusję Nicka Coxa na ten temat.]
Jest to dość rozsądny, dość solidny estymator lokalizacji. Ogólnie uważa się, że jest bardziej odpowiedni do dystrybucji prawie symetrycznych niż te o dużym przekrzywieniu, ale jeśli odpowiada to twojemu celowi *, nie ma powodu, aby go nie używać. To, co najlepiej przyciąć, zależy od rodzaju dystrybucji i właściwości, których szukasz.
* Nie jest do końca jasne, co chcesz tu oszacować.
Istnieje wiele innych solidnych podejść do podsumowania „centrum” dystrybucji, z których niektóre mogą być również przydatne. (np. M-estymatory mogą być dla ciebie przydatne)
[Jeśli potrzebujesz odpowiedniej miary zmienności, aby dopasować się do średniej przyciętej, przydatne może być Winsorized odchylenie standardowe (zasadniczo, przy obliczaniu sd, zamień wartości, które odetniesz podczas przycinania na najbardziej ekstremalne wartości nie odciął).]
źródło
Jeszcze inną metodą jest obliczenie mediany wszystkich średnich par lub przeładowanie.
Aktualizacja:
Mediana wszystkich par średnich nazywa się estymatorem Hodgesa-Lehmanna . Ten estymator ma zwykle wysoką wydajność. W tym wpisie do encyklopedii napisał Scott L. Hershberger:
Ładowanie początkowe może być mniej istotne i bardziej wymagające obliczeniowo, ale możesz pobrać małą losową próbkę danych z zamianą i obliczyć średnią z tej podpróbki, zrobić to wiele razy i obliczyć medianę wszystkich średnich.
W obu przypadkach nie musisz już wybierać wartości spośród wartości swoich danych (podczas obliczania zwykłej mediany), ale zamiast tego wybierasz spośród wielu średnich z podzbiorów danych.
źródło
Wydaje się rozsądne, co robisz: tylko dla informacji Używam następującego procesu dość często w podobnym celu: ale naprawdę bardzo interesują mnie tylko górne wartości odstające.
Oblicz pięciocyfrowe podsumowanie: Min, Q1, Mediana, Q3, Max. Oblicz zakres międzykwartylowy: Q3-Q1. Ustaw swoje odstające „ogrodzenia” na Q1-IQR * X i Q3 + IQR * X: gdzie rozsądna wartość „X” wynosi 1,5.
Używając Excela i twoich liczb powyższe (użycie 1,5 dla „X” **) daje jedną górną wartość odstającą: 21011
Tak więc dolne ogrodzenie nie jest w rzeczywistości przydatne ani realistyczne w twoim przykładzie: co potwierdza stwierdzenie drugiego postu dotyczące znaczenia zrozumienia znaczenia twoich konkretnych danych.
(** Znaleziono jeden cytat z reguły „1.5”: nie twierdzę, że jest autorytatywna, ale wydaje mi się rozsądnym punktem wyjścia: http://statistics.about.com/od/Descriptive-Statistics/a/ What-Is-The-Interquartile-Range-Rule.htm )
Możesz także (być może) po prostu użyć punktów danych, które mieszczą się w samym IQR: wydaje się, że daje to sensowne wyniki (ponieważ członkostwo w Twojej metodzie jest bardzo podobne).
użycie tych samych danych spowoduje umieszczenie następujących punktów danych w „obszarze zainteresowania”:
Na wykresie pudełkowym: wszystkie te punkty mieszczą się w części pudełkowej (a nie w części wąsów) na schemacie.
Widać, że ta lista zawiera niektóre elementy, których nie ma na oryginalnej liście (kompilacje o dłuższym czasie działania); Nie mogę powiedzieć, czy jedna lista jest w jakikolwiek sposób bardziej dokładna. (ponownie sprowadza się do zrozumienia zestawu danych).
źródło