Wir haben einige Arten von statistischen Hypothesentests implementiert, von denen einer der Chi-Quadrat-geeignete Modelltest ist - ein Chi-Quadrat-Test der Anzahl von Proben in Behältern, der aus der inversen CDF der gegebenen Wahrscheinlichkeitsverteilung bestimmt wird. Um beispielsweise die Erzeugung von Cauchy-Verteilungsproben zu testen, führe ich so etwas aus
with(Statistics):
infolevel[Statistics] := 1:
distribution := CauchyDistribution(2, 3):
sample := Sample(distribution, 10^6):
ChiSquareSuitableModelTest(sample, distribution, 'bins' = 100, 'level' = 0.001);
Da ich eine so große Stichprobe erzeugen kann, wie ich möchte, kann ich ziemlich klein machen.α
Für Verteilungen mit endlichen Momenten berechne ich einerseits eine Anzahl von Beispielmomenten und andererseits berechne ich symbolisch die entsprechenden Verteilungsmomente und ihren Standardfehler. Also zum Beispiel für die Beta-Distribution:
with(Statistics):
distribution := BetaDistribution(2, 3):
distributionMoments := Moment~(distribution, [seq(1 .. 10)]);
standardErrors := StandardError[10^6]~(Moment, distribution, [seq(1..10)]);
evalf(distributionMoments /~ standardErrors);
Dies zeigt eine abnehmende Liste von Zahlen, von denen die letzte 255.1085766 ist. Selbst für den 10. Moment ist der Wert des Moments mehr als das 250-fache des Wertes des Standardfehlers des Probenmoments für eine Probe der Größe . Dies bedeutet, dass ich einen Test implementieren kann, der mehr oder weniger wie folgt ausgeführt wird:106
with(Statistics):
sample := Sample(BetaDistribution(2, 3), 10^6):
sampleMoments := map2(Moment, sample, [seq(1 .. 10)]);
distributionMoments := [2/5, 1/5, 4/35, 1/14, 1/21, 1/30, 4/165, 1/55, 2/143, 1/91];
standardErrors :=
[1/5000, 1/70000*154^(1/2), 1/210000*894^(1/2), 1/770000*7755^(1/2),
1/54600*26^(1/2), 1/210000*266^(1/2), 7/5610000*2771^(1/2),
1/1567500*7809^(1/2), 3/5005000*6685^(1/2), 1/9209200*157366^(1/2)];
deviations := abs~(sampleMoments - distributionMoments) /~ standardErrors;
Die Zahlen in distributionMoments
und standardErrors
stammen aus dem ersten Lauf oben. Wenn die Stichprobenerzeugung korrekt ist, sollten die Zahlen in Abweichungen relativ klein sein. Ich gehe davon aus, dass sie ungefähr normal verteilt sind (was sie nicht wirklich sind, aber es kommt nahe genug - denken Sie daran, dass dies skalierte Versionen von Sample-Momenten sind, nicht die Samples selbst), und so kann ich zum Beispiel einen Fall markieren, in dem eine Abweichung vorliegt größer als 4 - entspricht einem Abtastmoment, das mehr als das Vierfache des Standardfehlers vom Verteilungsmoment abweicht. Es ist sehr unwahrscheinlich, dass dies zufällig auftritt, wenn die Stichprobenerzeugung gut ist. Wenn andererseits die ersten 10 Abtastmomente mit den Verteilungsmomenten auf weniger als ein halbes Prozent übereinstimmen, haben wir eine ziemlich gute Annäherung an die Verteilung.
Bruce McCullough hatte eine gewisse Erfahrung in der Bewertung von Statistiksoftware (im weitesten Sinne; er testete auch Microsoft Excel. Und fand es mangelhaft). Zwei Papiere, die einen Teil seines Ansatzes veranschaulichen, sind hier und hier.
quelle
Der Präsident von StataCorp, William Gould, gibt in diesem Artikel im Stata Journal viele Details bekannt. 1 Es ist ein sehr interessanter Artikel über die Qualitätskontrolle von Statistiksoftware.
quelle