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.)
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
@ telliott99: Sie haben Recht ... Ich habe diesen Abschnitt ein wenig umformuliert, um die Interpretation der hypothetischen Testergebnisse zu verdeutlichen. –