2010-11-21 6 views
0

Ich habe eine relativ kleine (~ 100 Werte) Menge von ganzen Zahlen: jede von ihnen stellt dar, wie viel Zeit (in Millisekunden) ein Test dauerte ich dauerte.Berechnung des tatsächlichen Durchschnittswerts

Der triviale Algorithmus zur Berechnung des Durchschnitts besteht darin, alle n Werte zusammenzufassen und das Ergebnis durch n zu teilen, aber dies berücksichtigt nicht, dass ein lächerlich hoher/niedriger Wert falsch sein muss und verworfen werden sollte.

Welche Algorithmen sind verfügbar, um den tatsächlichen Durchschnittswert zu schätzen?

+3

Es gibt nicht so etwas wie die „tatsächlichen“ Mittelwert: Sie können nicht streng statistischen Ausreißer von den tatsächlichen Daten unterscheiden, ohne dass einige Annahmen zu machen. Was tatsächliche Daten und was Fehler sind, ist letztlich eine probabilistische Entscheidung. Auch das ist keine Programmierfrage, sondern eine Frage der Statistik. – stakx

+1

+1 stakx. Außerdem könnte ich vorschlagen, dass die Annahme, dass "lächerliche" Werte "falsch" sind, falsch sein könnte. Ich würde vorschlagen, einfach weitere Tests (1000 oder 10000) zu starten und den * Mittelwert * -Wert unverändert zu nehmen. –

Antwort

2

Wie Sie gesagt haben, können Sie alle Werte, die um mehr als einen bestimmten Wert abweichen, vom Durchschnitt verwerfen und dann den Durchschnitt neu berechnen. Ein weiterer Wert, der interessant sein kann, ist der Median, das ist der häufigste Wert.

+1

Modus ist der häufigste Wert (oder die häufigsten Werte). – birryree

+0

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

+0

@peoro, ja da ist es aber nicht so einfach. Suchen Sie nach Standardabweichung http://en.wikipedia.org/wiki/Standard_deviation gibt es mehrere Mathematik-Bibliothek mit dem – Uberto

1

Es hängt von verschiedenen Bedingungen Ihres Tests ab. Und es ist eine Aufgabe aus der Wahrscheinlichkeitstheorie. Einer der einfachsten Weg ist es, einen Median zu berechnen, dass Sie mit lächerlich hohen/niedrigen Werten umgehen können. Siehe Link unten: Wiki about median

1

Wie Sie angemerkt haben, ist das arithmetische Mittel nicht gut, wenn es sehr hohe/niedrige Werte gibt. Sie können den Median berechnen, wie jemand vorgeschlagen hat, der in einer sortierten Liste Ihrer Werte den "mittleren" Wert (wenn Ihr Satz eine ungleiche Menge von Elementen enthält) oder das arithmetische Mittel der beiden "mittleren" Werte (sonst).

Eine andere Methode wäre, sagen wir, die niedrigsten und höchsten fünf percentiles und berechnen Sie das arithmetische Mittel des Rests.

1

Einige Optionen:

  • Erste Verwerfungs N höchsten und niedrigsten Werte und Arithmetik berechnen für den Rest bedeuten. Setzen Sie N auf einen geeigneten Wert, so dass z. B. 1% oder 10% der Werte verworfen werden.
  • Verwenden Sie den median oder mittleren Wert.
  • Verwenden Sie geometric mean, die für die Ausreißer weniger Gewicht geben.

Wikipedia listet some ways zu berechnen unterschiedlichen „mittlere“ Wert