Estou trabalhando em estatísticas para compilações de software. Eu tenho dados para cada build em aprovação / reprovação e tempo decorrido e geramos ~ 200 deles / semana.
A taxa de sucesso é fácil de agregar, posso dizer que 45% passaram em uma determinada semana. Mas também gostaria de agregar tempo decorrido e quero garantir que não deturpemos muito os dados. Achei melhor perguntar aos profissionais :-)
Digamos que eu tenho 10 durações. Eles representam casos de aprovação e reprovação. Algumas construções falham imediatamente, o que torna a duração extraordinariamente curta. Alguns ficam paralisados durante o teste e eventualmente atingem o tempo limite, causando durações muito longas. Construímos produtos diferentes, portanto, mesmo compilações bem-sucedidas variam entre 90 segundos e 4 horas.
Eu posso obter um conjunto como este:
[50, 7812, 3014, 13400, 21011, 155, 60, 8993, 8378, 9100]
Minha primeira abordagem foi obter o tempo médio, classificando o conjunto e escolhendo o valor médio, neste caso 7812 (eu não me incomodei com a média aritmética dos conjuntos pares).
Infelizmente, isso parece gerar muita variação, pois apenas escolho um determinado valor. Portanto, se eu tivesse tendência para esse valor, ele retornaria entre 5000-10000 segundos, dependendo de qual build estava na mediana.
Então, para suavizar isso, tentei outra abordagem - remova valores discrepantes e calcule uma média sobre os valores restantes. Decidi dividi-lo em tercis e trabalhar apenas no meio:
[50, 60, 155, 3014, 7812, 8378, 8993, 9100, 13400, 21011] ->
[50, 60, 155], [3014, 7812, 8378, 8993], [9100, 13400, 21011] ->
[3014, 7812, 8378, 8993]
A razão pela qual isso me parece melhor é duplo:
- Não queremos nenhuma ação nas versões mais rápidas, elas já estão boas
- As compilações mais longas provavelmente são induzidas pelo tempo limite e sempre estarão lá. Temos outros mecanismos para detectar aqueles
Parece-me que esses são os dados que estou procurando, mas estou preocupado que tenha conseguido suavidade removendo, bem, a verdade.
Isso é controverso? O método é sadio?
Obrigado!