Warum kann ich keinen p-Wert kleiner als 2.2e-16 bekommen?

Ich gefunden habe dieses Problem mit t-tests und chi-Quadrat in R, aber ich nehme an, dieses Problem gilt generell für andere tests. Wenn ich das mache:

a <- 1:10
b <- 100:110
t.test(a,b) 

Bekomme ich: t = -64.6472, df = 18.998, p-value < 2.2e-16. Ich weiß aus den Kommentaren, dass 2.2e-16 ist der Wert von .Machine$double.eps - die kleinste Gleitkommazahl, so dass 1 + x != 1aber natürlich R kann zahlen darstellen, die viel kleiner als die. Ich weiß auch aus dem R-FAQ, die R hat Runde schwimmt 53 binäre stellen Genauigkeit: R FAQ.

Ein paar Fragen: (1) gehe ich Recht in der Lesung, als 53 binäre stellen Präzision oder sind die Werte, die in R < .Machine$double.eps nicht genau berechnet? (2) Warum, wenn man solche Berechnungen nicht R keine Möglichkeit, die Anzeige einen kleineren Wert für die p-Wert, sogar mit einem gewissen Verlust an Präzision? (3) gibt es einen Weg, um einen kleineren p-Wert, auch wenn ich verlieren einige der Präzision? Für einen einzigen test 2 Dezimalstellen signifikanten zahlen würde in Ordnung sein, für Werte werde ich Bonferroni zu korrigieren, werde ich mehr brauchen. Wenn ich sage, "verlieren etwas an Präzision" ich denke, dass < 53 binäre stellen, aber (4) bin ich völlig Irre und jede p-Wert < .Machine$double.eps ist Wild ungenau? (5) Ist R nur ehrlich und die anderen stats sind die Pakete nicht?

In meinem Bereich sehr kleine p-Werte sind in der norm, einige Beispiele: http://www.ncbi.nlm.nih.gov/pubmed/20154341http://www.plosgenetics.org/article/info%3Adoi%2F10.1371%2Fjournal.pgen.1002215 und dies ist der Grund, warum ich möchte darstellen, wie kleine p-Werte.

Danke für Eure Hilfe, sorry für so eine unerlaubte Frage.

InformationsquelleAutor der Frage arandomlypickedname | 2011-08-07

Schreibe einen Kommentar