2010-11-21 56 views
0

J'ai un nombre relativement faible (~ 100 valeurs) d'entiers: chacun représente combien de temps (en millisecondes) un test a duré.Calcul de la valeur moyenne réelle

L'algorithme trivial pour calculer la moyenne est de résumer toutes les n valeurs et diviser le résultat par n, mais cela ne tient pas compte du fait que doit être faux et devrait se jeté un peu ridiculement valeur haute/basse.

Quels sont les algorithmes disponibles pour estimer la valeur moyenne réelle?

+3

Il n'y a pas une telle chose que la valeur moyenne « réelle »: Vous ne pouvez pas distinguer strictement les valeurs aberrantes statistiques à partir des données réelles sans faire quelques hypothèses. Ce qui constitue des données réelles et ce qui est une erreur est finalement une décision probabiliste. En outre, ce n'est pas strictement une question de programmation, mais une question de statistiques. – stakx

+1

+1 stakx. En outre, je pourrais suggérer que l'hypothèse selon laquelle les valeurs «ridicules» sont «fausses» peut être incorrecte. Je suggère simplement d'exécuter plus de tests (1000 ou 10000) et de prendre la valeur * mean * telle quelle. –

Répondre

2

Comme vous l'avez dit, vous pouvez ignorer toutes les valeurs qui divergent plus d'une valeur donnée de la moyenne, puis recalculer la moyenne. Une autre valeur qui peut être intéressante est la médiane, c'est la valeur la plus fréquente.

+1

Le mode est la valeur (ou les valeurs) les plus fréquentes. – birryree

+0

http://en.wikipedia.org/wiki/Median – Uberto

+0

@peoro, oui il y en a mais ce n'est pas si facile. Rechercher l'écart-type http://en.wikipedia.org/wiki/Standard_deviation Il existe plusieurs bibliothèques de mathématiques avec – Uberto

1

Cela dépend de différentes conditions de votre test. Et c'est une tâche de la théorie des probabilités. L'un des moyens les plus simples est d'essayer de calculer un médiane, que vous pouvez traiter avec des valeurs ridiculement hautes/basses. Regardez le lien ci-dessous: Wiki about median

1

Comme vous l'avez noté, la moyenne arithmétique n'est pas bonne s'il y a des valeurs très hautes/basses. Vous pouvez calculer la médiane, comme suggéré, qui est, dans une liste triée de vos valeurs, la valeur "moyenne" (si votre ensemble contient une quantité inégale d'éléments) ou la moyenne arithmétique des deux valeurs "moyennes" (autre).

Une autre méthode consisterait à supprimer, par exemple, les cinq plus faibles et les plus élevés cinq percentiles et de calculer la moyenne arithmétique du reste.

1

Certaines options:

  • défausse N Première valeurs minimales et maximales et calculer moyenne arithmétique pour le reste. Réglez N sur une valeur appropriée de sorte que, par exemple, 1% ou 10% des valeurs soient ignorées.
  • Utilisez le median ou la valeur moyenne.
  • Utilisez geometric mean qui donne moins de poids pour les valeurs aberrantes.

Wikipedia liste some ways pour calculer différentes valeurs « moyennes »