Je travaille sur les statistiques des builds de logiciels. J'ai des données pour chaque build sur réussite / échec et le temps écoulé et nous générons ~ 200 de ces / semaine.
Le taux de réussite est facile à agréger, je peux dire que 45% ont réussi une semaine donnée. Mais je voudrais également agréger le temps écoulé et je veux m'assurer de ne pas déformer trop mal les données. Je pensais que je ferais mieux de demander aux pros :-)
Disons que j'ai 10 durées. Ils représentent à la fois les cas de réussite et d'échec. Certaines versions échouent immédiatement, ce qui rend la durée inhabituellement courte. Certains se bloquent pendant les tests et finissent par s'arrêter, provoquant de très longues durées. Nous fabriquons différents produits, donc même les versions réussies varient entre 90 secondes et 4 heures.
Je pourrais obtenir un ensemble comme celui-ci:
[50, 7812, 3014, 13400, 21011, 155, 60, 8993, 8378, 9100]
Ma première approche a été d'obtenir le temps médian en triant l'ensemble et en choisissant la valeur moyenne, dans ce cas 7812 (je ne me suis pas soucié de la moyenne arithmétique pour les ensembles pairs).
Malheureusement, cela semble générer beaucoup de variations, car je ne sélectionne qu'une seule valeur donnée. Donc, si je devais faire évoluer cette valeur, elle rebondirait entre 5000 et 10000 secondes selon la construction à la médiane.
Donc, pour lisser cela, j'ai essayé une autre approche - supprimer les valeurs aberrantes puis calculer une moyenne sur les valeurs restantes. J'ai décidé de le diviser en tertiles et de travailler uniquement sur celui du milieu:
[50, 60, 155, 3014, 7812, 8378, 8993, 9100, 13400, 21011] ->
[50, 60, 155], [3014, 7812, 8378, 8993], [9100, 13400, 21011] ->
[3014, 7812, 8378, 8993]
La raison pour laquelle cela me semble meilleur est double:
- Nous ne voulons aucune action sur les versions plus rapides, elles sont déjà bien
- Les versions les plus longues sont probablement induites par le timeout et seront toujours là. Nous avons d'autres mécanismes pour détecter ces
Il me semble donc que ce sont les données que je recherche, mais je crains d'avoir atteint la régularité en supprimant, enfin, la vérité.
Est-ce controversé? La méthode est-elle sensée?
Merci!