Ich arbeite an Statistiken für Software-Builds. Ich habe Daten für jeden Build auf Pass / Fail und abgelaufene Zeit und wir generieren ~ 200 davon / Woche.
Die Erfolgsquote lässt sich leicht zusammenfassen. Ich kann sagen, dass 45% einer Woche vergangen sind. Aber ich möchte auch die verstrichene Zeit zusammenfassen und sicherstellen, dass die Daten nicht zu schlecht dargestellt werden. Dachte mir, ich frag besser die Profis :-)
Angenommen, ich habe 10 Dauern. Sie repräsentieren sowohl Bestehen als auch Nichtbestehen. Einige Builds schlagen sofort fehl, was die Dauer ungewöhnlich kurz macht. Einige hängen während des Testens und haben möglicherweise eine Zeitüberschreitung, was zu sehr langen Wartezeiten führt. Wir bauen verschiedene Produkte, so dass selbst erfolgreiche Builds zwischen 90 Sekunden und 4 Stunden variieren.
Ich könnte ein Set wie dieses bekommen:
[50, 7812, 3014, 13400, 21011, 155, 60, 8993, 8378, 9100]
Mein erster Ansatz bestand darin, den Median der Zeit zu ermitteln, indem ich die Menge sortierte und den Mittelwert auswählte, in diesem Fall 7812 (ich habe mich nicht mit dem arithmetischen Mittelwert für geradzahlige Mengen befasst.)
Leider scheint dies eine Menge Variationen zu erzeugen, da ich nur einen bestimmten Wert auswähle. Wenn ich diesen Wert trendete, bewegte er sich zwischen 5000 und 10000 Sekunden, abhängig davon, welcher Build sich im Median befand.
Um dies auszugleichen, habe ich einen anderen Ansatz gewählt: Entfernen Sie Ausreißer und berechnen Sie dann einen Mittelwert über die verbleibenden Werte. Ich habe beschlossen, es in tertiles aufzuteilen und nur an dem mittleren zu arbeiten:
[50, 60, 155, 3014, 7812, 8378, 8993, 9100, 13400, 21011] ->
[50, 60, 155], [3014, 7812, 8378, 8993], [9100, 13400, 21011] ->
[3014, 7812, 8378, 8993]
Der Grund, warum mir das besser erscheint, ist zweierlei:
- Wir wollen keine Aktion für die schnelleren Builds, sie sind bereits in Ordnung
- Die längsten Builds sind wahrscheinlich vom Timeout abhängig und werden immer vorhanden sein. Wir haben andere Mechanismen, um diese aufzuspüren
Es scheint mir also, dass dies die Daten sind, nach denen ich suche, aber ich mache mir Sorgen, dass ich die Glätte erreicht habe, indem ich die Wahrheit entfernt habe.
Ist das umstritten? Ist die Methode vernünftig?
Vielen Dank!