Frage:
Wie kann ich feststellen, ob zwischen zwei Durchschnittswerten ein statistisch signifikanter Unterschied besteht?
Carson Myers
2011-09-25 10:04:08 UTC
view on stackexchange narkive permalink

Ich schreibe ein Benchmark-Programm in C # und Java als erste Aufgabe für eine CS-Klasse. Wir sollen eine Art Bericht über unsere Methoden und Ergebnisse aus dem Benchmark schreiben, und ich möchte meiner eine statistische Komponente hinzufügen.

Ich habe 15 Laufzeitbeispiele aus jeder Sprache und den Mittelwert und die Standardabweichung von jedem. Wie kann ich feststellen, ob zwischen ihnen ein statistisch signifikanter Unterschied besteht?

Drei antworten:
raegtin
2011-09-25 11:05:35 UTC
view on stackexchange narkive permalink

Wenn Ihre Laufzeitbeispiele für jede Sprache ungefähr normal verteilt sind * (was wahrscheinlich der Fall ist), können Sie einen t-Test verwenden, insbesondere einen unabhängiger T-Test mit zwei Stichproben mit ungleichen Varianzen .

Wenn Sie R installiert haben, können Sie dies tun, indem Sie t.test (x = c_sharp_samples, y) ausführen = java_samples) .

Wenn Sie den Test jedoch manuell ausführen möchten, berechnen Sie zunächst:

  • $ t = \ frac {\ bar { X_1} - \ bar {X_2}} {s _ {\ bar {X_1} - \ bar {X_2}} $, wobei $ s _ {\ bar {X_1} - \ bar {X_2}} = \ sqrt {\ frac { s_1 ^ 2} {n_1} + \ frac {s_2 ^ 2} {n_2}} $ und $ \ bar {X_1} $ ist der Stichprobenmittelwert der C # -Samples, $ s_1 $ ist die Standardabweichung der C # -Samples. $ n_1 $ ist die Anzahl der C # -Samples usw.
  • $ df = \ frac {(s_1 ^ 2 / n_1 + s_2 ^ 2 / n_2) ^ 2} {(s_1 ^ 2 / n_1 ) ^ 2 / (n_1 - 1) + (s_2 ^ 2 / n_2) ^ 2 / (n_2 - 1)} $.

Dann folgt $ t $ (ungefähr) dem t eines Schülers Verteilung mit $ df $ Freiheitsgraden, also suchen Sie $ t $ in der entsprechenden Tabelle (oder Verwenden eines t-Verteilungsrechners).

* Auch wenn Ihre Laufzeit-Samples für jede Sprache nicht normal verteilt sind, reichen wahrscheinlich 15 Samples aus, damit eine normale Annäherung (dh die CLT) einsetzt Es sollte dir gut gehen. Wenn Sie jedoch formal sein und diese normale Annahme nicht treffen möchten, können Sie stattdessen den (nicht parametrischen) Mann Whitney-Test verwenden.

Tal Galili
2011-09-25 11:04:06 UTC
view on stackexchange narkive permalink

Es hört sich so an, als ob Sie einen T-Test verwenden möchten ( hier ist die Wikipedia-Seite).

Wenn Sie nicht davon ausgehen, dass sich Ihre Beobachtungen normal verteilen, versuchen Sie dies , Mann-Whitney-U-Test (kann jedoch nicht allein aus Mittelwert / SD berechnet werden).

Stellen Sie sicher, dass Ihre Beobachtungen unabhängig sind, damit die Gültigkeit des t-test bleibt erhalten.

Viel Glück und lesen Sie mehr darüber, bevor Sie Dinge tun!

F. Tusell
2011-09-25 12:57:02 UTC
view on stackexchange narkive permalink

Ein Permutationstest ist eine weitere Möglichkeit, obwohl ich denke, dass für das Problem, das Sie beschreiben, die genannten Alternativen überlegen sind.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...