Permutationstests sind Signifikanztests, die auf Permutations-Resamples basieren, die zufällig aus den Originaldaten gezogen wurden. Permutations-Resamples werden ersatzlos gezeichnet, im Gegensatz zu Bootstrap-Samples, die ersatzlos gezeichnet werden. Hier ist ein Beispiel, das ich in R eines einfachen Permutationstests gemacht habe. (Ihre Kommentare sind willkommen)
Permutationstests haben große Vorteile. Sie erfordern keine spezifischen Bevölkerungsformen wie Normalität. Sie gelten für eine Vielzahl von Statistiken, nicht nur für Statistiken, die unter der Nullhypothese eine einfache Verteilung aufweisen. Sie können sehr genaue p-Werte liefern, unabhängig von der Form und Größe der Population (wenn genügend Permutationen verwendet werden).
Ich habe auch gelesen, dass es oft nützlich ist, ein Konfidenzintervall zusammen mit einem Test anzugeben, der mithilfe von Bootstrap-Resampling anstelle von Permutations-Resampling erstellt wird.
Können Sie erklären (oder nur den R-Code angeben), wie ein Konfidenzintervall aufgebaut ist (dh für die Differenz zwischen den Mitteln der beiden Stichproben im obigen Beispiel)?
BEARBEITEN
Nach einigem googeln fand ich diese interessante Lektüre .
quelle
sample
und zu generierenreplace=TRUE
? Gibt es einen Grund, ein Paket wie zu verwendenboot
?sum(b$t>=b$t0)/b$R
Da ein Permutationstest ein exakter Test ist, erhalten Sie einen exakten p-Wert. Das Bootstrapping eines Permutationstests ist nicht sinnvoll.
Darüber hinaus ist es auch nicht sinnvoll, ein Konfidenzintervall um eine Teststatistik herum zu bestimmen, da es auf der Grundlage Ihrer Stichprobe und nicht auf der Grundlage einer Schätzung berechnet wird. Sie bestimmen Konfidenzintervalle um Schätzungen wie Mittelwerte und dergleichen, jedoch nicht um Teststatistiken.
Permutationstests sollten nicht für Datensätze verwendet werden, die so groß sind, dass Sie nicht mehr alle möglichen Permutationen berechnen können. Wenn dies der Fall ist, verwenden Sie ein Bootstrap-Verfahren, um den Grenzwert für die von Ihnen verwendete Teststatistik zu bestimmen. Dies hat jedoch wiederum wenig mit einem 95% -Konfidenzintervall zu tun.
Ein Beispiel: Ich verwende hier die klassische T-Statistik, verwende jedoch einen einfachen Ansatz für das Bootstrapping zur Berechnung der empirischen Verteilung meiner Statistik. Darauf basierend berechne ich einen empirischen p-Wert:
Beachten Sie, dass dieser zweiseitige Test nur für symmetrische Verteilungen funktioniert. Nicht symmetrische Verteilungen werden normalerweise nur einseitig getestet.
EDIT:
OK, ich habe die Frage falsch verstanden. Wenn Sie ein Konfidenzintervall für die Schätzung der Differenz berechnen möchten, können Sie den hier genannten Code für das Bootstrapping in jedem Beispiel verwenden. Wohlgemerkt, dies ist eine voreingenommene Schätzung: Im Allgemeinen ergibt dies ein zu kleines CI. Sehen Sie sich auch das dort angegebene Beispiel als Grund an, warum Sie für das Konfidenzintervall und den p-Wert einen anderen Ansatz verwenden müssen.
quelle
x[6:11]
bezieht sich auf das Argumentx
der anonymen Funktion innerhalb der Apply. Vielleicht verwirrend, aber Ihre Bearbeitung ergab sehr falsche Ergebnisse. Bitte kommentieren Sie, was Ihrer Meinung nach sein sollte, bevor Sie den Code bearbeiten. Spart mir einen Rollback. Um weitere Verwirrung zu vermeiden, habe ich dasx
ini
Aus Joris Meys Code in den Antworten, jedoch mit Änderungen, damit er in mehr als einer Situation angewendet werden kann:
Ich habe versucht, den anderen zu bearbeiten, aber ich hatte keine Zeit zum Beenden und aus irgendeinem Grund kann ich keinen Kommentar abgeben (vielleicht weil dies eine alte Frage ist).
quelle