Ich versuche, den exakten Fisher-Test bei einem simulierten genetischen Problem anzuwenden, aber die p-Werte scheinen nach rechts verschoben zu sein. Als Biologe vermisse ich wohl jedem Statistiker etwas Offensichtliches, daher würde ich mich sehr über Ihre Hilfe freuen.
Mein Setup lautet wie folgt: (Setup 1, Ränder nicht festgelegt)
Zwei Stichproben von 0 und 1 werden zufällig in R generiert. Bei jeder Stichprobe n = 500 sind die Wahrscheinlichkeiten für die Stichproben 0 und 1 gleich. Ich vergleiche dann die Anteile von 0/1 in jeder Probe mit dem exakten Fisher-Test (nur fisher.test
; habe auch andere Software mit ähnlichen Ergebnissen ausprobiert). Die Probenahme und Prüfung wird 30 000 Mal wiederholt. Die resultierenden p-Werte sind wie folgt verteilt:
Der Mittelwert aller p-Werte liegt bei 0,55, 5. Perzentil bei 0,0577. Sogar die Verteilung erscheint auf der rechten Seite diskontinuierlich.
Ich habe alles gelesen, was ich kann, aber ich finde keinen Hinweis darauf, dass dieses Verhalten normal ist. Andererseits handelt es sich nur um simulierte Daten, sodass ich keine Quellen für Verzerrungen sehe. Gibt es eine Anpassung, die ich verpasst habe? Zu kleine Stichprobengrößen? Oder soll es nicht gleichmäßig verteilt sein und die p-Werte unterschiedlich interpretiert werden?
Oder sollte ich dies einfach millionenfach wiederholen, das 0,05-Quantil finden und es als Signifikanzgrenzwert verwenden, wenn ich dies auf tatsächliche Daten anwende?
Vielen Dank!
Aktualisieren:
Michael M schlug vor, die Randwerte von 0 und 1 festzulegen. Jetzt ergeben die p-Werte eine viel schönere Verteilung - leider ist sie weder einheitlich noch von einer anderen Form, die ich erkenne:
Hinzufügen des tatsächlichen R-Codes: (Setup 2, Ränder fest)
samples=c(rep(1,500),rep(2,500))
alleles=c(rep(0,500),rep(1,500))
p=NULL
for(i in 1:30000){
alleles=sample(alleles)
p[i]=fisher.test(samples,alleles)$p.value
}
hist(p,breaks=50,col="grey",xlab="p-values",main="")
Endgültige Bearbeitung:
Wie Whuber in den Kommentaren hervorhebt, sehen die Bereiche aufgrund von Binning nur verzerrt aus. Ich füge die QQ-Plots für Setup 1 (freie Ränder) und Setup 2 (feste Ränder) hinzu. Ähnliche Diagramme sind in Glen's Simulationen unten zu sehen, und alle diese Ergebnisse scheinen tatsächlich ziemlich einheitlich zu sein. Danke für die Hilfe!
quelle
Antworten:
Das Problem ist, dass die Daten diskret sind, so dass Histogramme täuschen können. Ich habe eine Simulation mit qqplots codiert, die eine ungefähre Gleichverteilung zeigen.
quelle