Nehmen wir an, ich würfel einen 6-seitigen Würfel 60 Mal und ich bekomme 16, 5, 9, 7, 6, 15 Rollen für die Zahlen 1 bis 6, jeweils. Die Nummern 1 und 6 zeigen zu viel und there's only about a 1.8% chance of that being random. Wenn ich Statistics::ChiSquare verwenden, druckt es aus:Ein besserer Chi-Quadrat-Test für Perl?
There's a >1% chance, and a <5% chance, that this data is random.
So ist es nicht nur eine schlechte Schnittstelle (ich kann nicht diese Zahlen direkt zurück zu bekommen), aber der Rundungsfehler ist signifikant.
Was ist schlimmer, was passiert, wenn ich 2 sechsseitige Würfel rolle? Die Wahrscheinlichkeit, eine bestimmte Zahl erhalten sind:
Sum Frequency Relative Frequency
2 1 1/36
3 2 2/36
4 3 3/36
5 4 4/36
6 5 5/36
7 6 6/36
8 5 5/36
9 4 4/36
10 3 3/36
11 2 2/36
12 1 1/36
Statistics::ChiSquare used to have a chisquare_nonuniform() function, aber es wurde entfernt.
Also die Zahlen sind schlecht gerundet und ich kann es nicht für eine ungleichmäßige Verteilung verwenden. Mit einer Liste der tatsächlichen Häufigkeit und einer Liste der erwarteten Häufigkeit, was ist der beste Weg zur Berechnung der Chi-Quadrat-Test in Perl? Die verschiedenen Module, die ich auf dem CPAN finde, helfen mir nicht, also vermute ich, dass ich etwas Offensichtliches verpasst habe.
Die Chi-Quadrat-Test ist einfach genug, um mathematisch direkt von Code in vielleicht 20 Zeilen zu implementieren, und ich erwarte, dass die meisten Menschen mehr direkte Kontrolle wollen wird genau das tun. Die Fehlergrenzen für 1%, 5% usw. sind schwieriger zu berechnen, daher werden einfache utils wahrscheinlich nur die Werte P <0,01, P <0,05 usw. fest codieren. Ich wäre nicht zu überrascht, einen besseren Chi-Quadrat-Test in einem generischen Statistik-Modul wie http://search.cpan.org/~mikek/Statistics-Distributions-1.02/Distributions.pm –