2010-01-17 12 views
9

Ich habe die Beispiele in der Boost-Website überprüft, aber sie sind nicht das, wonach ich suche.Wie verwende ich Chi-Quadrat-Verteilung mit C++ Boost-Bibliothek?

Um es einfach zu setzen, möchte ich, wenn eine Nummer auf einem Chip sehen begünstigt, 600 Rollen verwendet wird, so sollten die durchschnittlichen Erscheinungen jeder Zahl (1 bis 6) 100.

sein Und ich will Verwenden Sie die Chi-Quadrat-Verteilung, um zu überprüfen, ob der Würfel korrekt ist.

Hilfe !, Wie würde ich das bitte tun ??

Antwort

11

Angenommen, e [i] und o [i] sind Arrays, die die erwartete und beobachtete Anzahl von Rollen für jede der 6 Möglichkeiten enthalten. In deinem Fall ist e [i] 100 für jeden Behälter und o [i] ist die Anzahl der Male, die ich in deinen 600 Versuchen gerollt wurde.

Sie dann die Chi-Quadrat-Statistik berechnen durch Addition (e [i] -o [i])/e [i] über den 6-Bins. Nehmen wir an, Ihr o [i] Array kam mit 105, 95, 102, 98, 98 und 102 Zählern nach 600 Versuchen.

chi = 5 /100 + 5 /100 + 2 /100 + 2 /100 + 2 /100 + 2 /100 = .660

Sie haben fünf Freiheitsgrade (Anzahl der Bins minus 1). So wirst du hat eine Erklärung wie

boost::math::chi_squared mydist(5); 

das Boost-Objekt repräsentiert Ihre Chi-Quadrat-Verteilung zu erstellen.

An diesem Punkt würden Sie die cdf Accessor-Funktion (kumulative Verteilungsfunktion) aus der Boost-Bibliothek verwenden, um den p-Wert zu suchen, der einem Chi-Quadrat-Ergebnis von .660 mit fünf Freiheitsgraden entspricht.

p = boost::math::cdf(mydist,.660); 

Sie sollten etwas in der Nähe 0.015, erhalten, die als (1-0,015) interpretiert werden würde = 98,5% Wahrscheinlichkeit der Beobachtung ein Chi-Quadrat-Score mindestens so extrem wie 0.660, wenn man die Null annimmt, Hypothese (dass der Würfel fair ist). Für diese Datengruppe kann die Nullhypothese daher nicht mit einem vernünftigen Vertrauensniveau zurückgewiesen werden. (Disclaimer: ungeprüfter Code! Aber wenn ich die Boost-Dokumentation richtig verstehe, sollte es so funktionieren.)

+0

Aus Wikipedia: "Der p-Wert ist nicht die Wahrscheinlichkeit, dass die Nullhypothese wahr ist." Der p-Wert ist die Wahrscheinlichkeit, eine Teststatistik zu erhalten, die mindestens so extrem ist wie die tatsächlich beobachtete, unter der Annahme, dass die Nullhypothese wahr ist. " – telliott99

+0

@ telliott99: Sie haben Recht ... Ich habe diesen Abschnitt ein wenig umformuliert, um die Interpretation der hypothetischen Testergebnisse zu verdeutlichen. –