Resampling- / Simulationsmethoden: Monte Carlo, Bootstrapping, Jackknifing, Kreuzvalidierung, Randomisierungstests und Permutationstests

73

Ich versuche den Unterschied zwischen verschiedenen Resampling-Methoden (Monte-Carlo-Simulation, parametrisches Bootstrapping, nicht-parametrisches Bootstrapping, Jackknifing, Kreuzvalidierung, Randomisierungstests und Permutationstests) und deren Implementierung in meinem eigenen Kontext mithilfe von R zu verstehen.

Angenommen, ich habe die folgende Situation: Ich möchte eine ANOVA mit einer Y- Variablen ( Yvar) und einer X- Variablen ( Xvar) durchführen. Xvarist kategorisch. Ich interessiere mich für folgende Dinge:

(1) Signifikanz von p-Werten - falsche Entdeckungsrate

(2) Effektgröße der XvarEbenen

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
Xvar <- c(rep("A", 5),  rep("B", 5),    rep("C", 5))
mydf <- data.frame (Yvar, Xvar)

Können Sie mich bitten, die Unterschiede bei der Stichprobenauswahl anhand von Beispielen zu erläutern, wie diese Methode zur erneuten Stichprobenerfassung funktioniert?

Änderungen: Hier sind meine Versuche:

Bootstrap 10 Bootstrap-Samples, Sample-Anzahl der Samples mit Ersetzung, bedeutet, dass Samples wiederholt werden können

boot.samples <- list()
for(i in 1:10) {
   t.xvar <- Xvar[ sample(length(Xvar), length(Xvar), replace=TRUE) ]
   t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=TRUE) ]
   b.df <- data.frame (t.xvar, t.yvar) 
   boot.samples[[i]] <- b.df 
}
str(boot.samples)
 boot.samples[1]

Permutation: 10 Permutationsproben, Probenanzahl ohne Ersatz

 permt.samples <- list()
    for(i in 1:10) {
       t.xvar <- Xvar[ sample(length(Xvar), length(Xvar), replace=FALSE) ]
       t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=FALSE) ]
       b.df <- data.frame (t.xvar, t.yvar) 
       permt.samples[[i]] <- b.df 
    }
    str(permt.samples)
    permt.samples[1]

Monte-Caro-Simulation

Obwohl der Begriff "Neuabtastung" häufig verwendet wird, um sich auf eine wiederholte Zufalls- oder Pseudozufallsabtastungssimulation zu beziehen, ist der korrekte Begriff "Monte-Carlo-Simulation", wenn die "Neuabtastung" aus einer bekannten theoretischen Verteilung erfolgt.

Ich bin mir nicht sicher, ob alle oben genannten Bedingungen erfüllt sind und ob meine oben genannten Änderungen korrekt sind. Ich habe einige Informationen über Jacknife gefunden, aber ich konnte sie meiner Situation nicht anpassen.

Ram Sharma
quelle
3
Jackknife ist ein einfacher Vorgänger des Bootstraps. en.wikipedia.org/wiki/Jackknife_(statistics)
EngrStudent
4
Genauer gesagt: Jackknife ist eine einmalige Neuabtastung [wird jedoch nicht für die Kreuzvalidierung verwendet]
glaubt,

Antworten:

121

Wir können verschiedene Resampling-Methoden oder lose " Simulations " -Methoden finden, die vom Resampling oder Shuffling der Samples abhängen . In Bezug auf die korrekte Terminologie kann es zu Meinungsverschiedenheiten kommen. In der folgenden Diskussion wird jedoch versucht, das, was in der entsprechenden Literatur verfügbar ist, zu verallgemeinern und zu vereinfachen:

Resampling Verfahren sind in (1) Abschätzen verwendet Präzision / Genauigkeit der Probenstatistiken durch Verwendung Teilmenge von Daten (zB Einknicken) oder Zeichnen zufällig mit dem Ersatz von einem Satz von Datenpunkten (zB bootstrapping) (2) Der Austausch von Etiketten auf Datenpunkten , wenn Bedeutung Durchführung Tests (Permutationstests, auch Exakte Tests, Randomisierungstests oder Re-Randomisierungstests genannt) (3) Validierung von Modellen mithilfe zufälliger Teilmengen (Bootstrapping, Kreuzvalidierung) (siehe Wikipedia: Resampling-Methoden )

BOOTSTRAPING

" Bootstrapping ist eine statistische Methode zur Schätzung der Stichprobenverteilung eines Schätzers durch Stichprobe mit Ersetzung aus der ursprünglichen Stichprobe". Das Verfahren weist Maßnahmen der Genauigkeit (definiert in Bezug auf die Vorspannung , Varianz , Konfidenzintervalle , Vorhersagefehler oder eine andere solche Maßnahme) Schätzungen abzutasten.

Die Grundidee von Bootstrapping ist, dass Rückschlüsse auf eine Grundgesamtheit aus Stichprobendaten ( Stichprobe → Grundgesamtheit ) modelliert werden können, indem die Stichprobendaten erneut abgetastet und Rückschlüsse auf (Stichprobe → Stichprobe) gezogen werden. Da die Grundgesamtheit unbekannt ist, ist der wahre Fehler in einer Stichprobenstatistik in Bezug auf ihren Grundgesamtheitswert nicht erkennbar. In Bootstrap-Resamples ist die "Population" tatsächlich die Stichprobe, und dies ist bekannt; daher ist die Qualität der Inferenz aus Resample - Daten → "echte" Stichprobe messbar. "Siehe Wikipedia

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)

#To generate a single bootstrap sample
sample(Yvar, replace = TRUE) 

 #generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000) 
   boot[[i]] <- sample(Yvar,replace=TRUE)

Bei univariaten Problemen ist es normalerweise akzeptabel, die einzelnen Beobachtungen durch Ersetzen neu abzutasten ("case resampling"). Hier werden die Daten mit Ersetzung neu abgetastet, und die Größe der Neuabtastung muss der Größe des ursprünglichen Datensatzes entsprechen.

In Regressionsproblemen Fall Resampling auf das einfache Schema bezieht sich einzelne Fälle von Resampling - oft Zeilen eines Datensatzes in Regressionsprobleme sind die erklärenden Variablen häufig fixiert oder zumindest mit mehr Kontrolle als die Antwortvariable beobachtet. Der Bereich der erklärenden Variablen definiert auch die Informationen, die von ihnen verfügbar sind. Fälle neu abzutasten bedeutet daher, dass jedes Bootstrap-Beispiel einige Informationen verliert (siehe Wikipedia ). Es ist daher logisch, die Datenzeilen nur als Stichprobe zu verwenden Yvar.

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
Xvar <- c(rep("A", 5),  rep("B", 5),    rep("C", 5))
mydf <- data.frame (Yvar, Xvar)    

boot.samples <- list()
for(i in 1:10) {
   b.samples.cases <- sample(length(Xvar), length(Xvar), replace=TRUE) 
   b.mydf <- mydf[b.samples.cases,] 
   boot.samples[[i]] <- b.mydf
}
str(boot.samples)
 boot.samples[1]

Sie können sehen, dass einige Fälle wiederholt werden, während wir mit dem Wiedereinbau probieren.

" Parametrischer Bootstrap - Ein parametrisches Modell wird den Daten häufig mit maximaler Wahrscheinlichkeit angepasst, und Stichproben von Zufallszahlen werden aus diesem angepassten Modell gezogen . In der Regel hat die gezogene Stichprobe dieselbe Stichprobengröße wie die ursprünglichen Daten. Dann wird die Menge oder Schätzung verwendet Aus diesen Daten wird der interessierende Wert berechnet.Dieser Stichprobenprozess wird wie bei anderen Bootstrap-Methoden viele Male wiederholt.Die Verwendung eines parametrischen Modells in der Stichprobenphase der Bootstrap-Methodik führt zu Verfahren, die sich von denen unterscheiden, die durch Anwendung der statistischen Grundtheorie erhalten werden auf dasselbe Modell schließen. "(siehe Wikipedia ). Das Folgende ist ein parametrischer Bootstrap mit einer Normalverteilungsannahme mit Parametern für Mittelwert und Standardabweichung.

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)

# parameters for Yvar 
mean.y <- mean(Yvar)
sd.y <- sd(Yvar)

#To generate a single bootstrap sample with assumed normal distribution (mean, sd)
rnorm(length(Yvar), mean.y, sd.y)

 #generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000) 
   boot[[i]] <- rnorm(length(Yvar), mean.y, sd.y)

Es gibt andere Varianten von Bootstrap. Bitte konsultieren Sie die Wikipedia-Seite oder ein gutes statisches Buch über Resampling.

JACKNIFE

Der Jackknife-Schätzer eines Parameters wird gefunden, indem systematisch jede Beobachtung aus einem Datensatz ausgelassen und der Schätzwert berechnet wird und dann der Durchschnitt dieser Berechnungen ermittelt wird. Bei einer Stichprobe der Größe N wird der Jackknife-Schätzwert durch Aggregieren der Schätzwerte jedes N − 1Schätzwerts ermittelt in der Probe. " siehe: wikipedia Das Folgende zeigt, wie man das jackknife Yvar.

jackdf <- list()
jack <- numeric(length(Yvar)-1)

for (i in 1:length (Yvar)){

for (j in 1:length(Yvar)){
     if(j < i){ 
            jack[j] <- Yvar[j]
}  else if(j > i) { 
             jack[j-1] <- Yvar[j]
}
}
jackdf[[i]] <- jack
}
jackdf

"Der reguläre Bootstrap und das Jackknife schätzen die Variabilität einer Statistik eher aus der Variabilität dieser Statistik zwischen Unterproben als aus parametrischen Annahmen . Für das allgemeinere Jackknife, das Jackknife delete-m observations, kann der Bootstrap als Zufall angesehen werden Beide liefern ähnliche numerische Ergebnisse, weshalb jeder als Annäherung an den anderen angesehen werden kann. " Siehe diese Frage auf Bootstrap vs Jacknife.

RANDOMISIERUNGSTESTS

"In parametrischen Tests werden Stichproben aus einer oder mehreren Populationen gezogen. Wir gehen von bestimmten Annahmen über diese Populationen aus, zumeist davon aus, dass sie normal mit gleichen Varianzen verteilt sind. Wir stellen eine Nullhypothese auf, die anhand von Parametern, häufig in der Form m1, berechnet wird -m2 = 0. Wir verwenden unsere Stichprobenstatistiken als Schätzwerte für die entsprechenden Populationsparameter und berechnen eine Teststatistik (z. B. beim Test) um gleich zu sein. Die Hypothese von Interesse ist das H0: m1 = m2. Eine der alternativen Hypothesen würde wie folgt angegeben werden:HA: m1 < m2. Bei zwei Stichproben aus Populationen 1 und 2 kann unter der Annahme, dass es sich um normalverteilte Populationen mit gleichen Varianzen handelt und dass die Stichproben unabhängig und zufällig aus jeder Population gezogen wurden, eine Statistik erstellt werden, deren Verteilung bekannt ist H0.

Ein Weg, um diese Verteilungsannahmen zu vermeiden, war der Ansatz, der jetzt als nicht parametrische, Rangordnungs-, Rang-ähnliche und verteilungsfreie Statistik bezeichnet wird. Diese verteilungsfreien Statistiken werden in der Regel als weniger "effizient" als der analoge Test kritisiert, bei dem angenommen wird, dass die Populationen normal verteilt sind.

Ein anderer alternativer Ansatz ist der Randomisierungsansatz - "der Prozess der zufälligen Zuordnung von Rängen zu Beobachtungen, unabhängig von der Kenntnis, zu welcher Stichprobe eine Beobachtung gehört. Ein Randomisierungstest macht von einem solchen Verfahren Gebrauch, arbeitet jedoch mit den Beobachtungen und nicht mit dem Gelenk Rangfolge der Beobachtungen. Aus diesem Grund kann die Verteilung einer analogen Statistik (die Summe der Beobachtungen in einer Stichprobe) nicht einfach tabellarisch dargestellt werden, obwohl es theoretisch möglich ist, eine solche Verteilung aufzulisten. "( siehe )

Randomisierungstests unterscheiden sich in fast jeder Hinsicht von Parametertests. (1) Es gibt keine Anforderung, dass wir Zufallsstichproben aus einer oder mehreren Populationen haben - tatsächlich haben wir in der Regel keine Zufallsstichproben genommen. (2) Wir denken selten in Bezug auf die Populationen, aus denen die Daten stammen, und es besteht keine Notwendigkeit, etwas über Normalität oder Homoskedastizität anzunehmen. (3) Unsere Nullhypothese hat nichts mit Parametern zu tun, sondern ist ziemlich vage formuliert, wie Zum Beispiel die Hypothese, dass die Behandlung keinen Einfluss auf die Leistung der Teilnehmer hat. (4) Da wir uns nicht mit Populationen befassen, geht es uns nicht darum, Eigenschaften dieser Populationen zu schätzen (oder sogar zu testen). (5) Wir berechnen einige Eine Art Teststatistik, die wir jedoch nicht mit den angegebenen Verteilungen vergleichen. Stattdessen, Wir vergleichen es mit den Ergebnissen, die wir erhalten, wenn wir die Daten über die Gruppen hinweg wiederholt randomisieren, und berechnen die entsprechende Statistik für jede Randomisierung. (6) Randomisierungstests unterstreichen noch mehr als parametrische Tests die Bedeutung der zufälligen Zuordnung von Teilnehmern zu Behandlungen. "sehen .

Die sehr beliebte Art des Randomisierungstests ist der Permutationstest. Wenn unsere Stichprobengröße 12 und 5 ist, ist die Gesamtpermutation möglich C(12,5) = 792. Wenn unsere Stichprobengrößen 10 und 15 gewesen wären, wären über 3,2 Millionen Arrangements möglich gewesen. Das ist eine Rechenaufgabe: Was dann? Probe . Wenn das Universum möglicher Arrangements zu groß ist, um es aufzuzählen, warum nicht Arrangements aus diesem Universum unabhängig und zufällig auswählen? Die Verteilung der Teststatistik über diese Reihe von Stichproben kann dann tabellarisch dargestellt, der Mittelwert und die Varianz berechnet und die mit einem Hypothesentest verbundene Fehlerrate geschätzt werden.

PERMUTATIONSTEST

Nach wikipedia eine Permutation test“(auch als Randomisierung Test , Re-Randomisierung Test oder eine exakte Test ) ist eine Art von statistischer Signifikanz - Test , in dem die Verteilung der Teststatistik unter der Nullhypothese durch die Berechnung alle möglichen Werte erhalten wird , die Teststatistik unter Umlagerungen der Etiketten auf den beobachteten Datenpunkten. Permutationstests existieren für jede Teststatistik, unabhängig davon , ob seine Verteilung bekannt ist. So ist man immer frei , die Statistik zu wählen , die am besten unterscheidet zwischen Hypothese und Alternative und das minimiert Verluste. "

Der Unterschied zwischen Permutation und Bootstrap besteht darin, dass das Bootstrap-Beispiel mit Ersetzung und das Permutations-Beispiel ohne Ersetzung erfolgt . In beiden Fällen geht die zeitliche Reihenfolge der Beobachtungen verloren, und daher geht die Volatilitätsclusterung verloren, wodurch sichergestellt wird, dass die Stichproben unter der Nullhypothese stehen, dass keine Volatilitätsclusterung vorliegt.

Die Permutationen haben immer die gleichen Beobachtungen, sodass sie eher den Originaldaten als den Bootstrap-Beispielen entsprechen. Die Erwartung ist, dass der Permutationstest empfindlicher sein sollte als ein Bootstrap-Test. Die Permutationen zerstören das Volatilitätsclustering, fügen jedoch keine andere Variabilität hinzu .

Siehe die Frage zu Permutation vs. Bootstrapping - "Der Permutationstest eignet sich am besten zum Testen von Hypothesen, und Bootstrapping eignet sich am besten zum Schätzen von Konfidenzintervallen ".

Um in diesem Fall eine Permutation durchzuführen, können wir einfach replace = FALSEdas obige Bootstrap-Beispiel ändern .

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
     #generate 1000 bootstrap samples
       permutes <-list()
    for (i in 1:1000) 
       permutes[[i]] <- sample(Yvar,replace=FALSE)

Bei mehr als einer Variablen macht es keinen Unterschied, nur die Zeilen auszuwählen und die Reihenfolge zu ändern, da die Daten gleich bleiben. Also mischen wir die Variable y neu. Etwas, was Sie getan haben, aber ich glaube nicht, dass wir beide und (wie Sie getan haben) nicht doppelt neu mischen müssen. xy variables

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
Xvar <- c(rep("A", 5),  rep("B", 5),    rep("C", 5))
mydf <- data.frame (Yvar, Xvar)

 permt.samples <- list()
    for(i in 1:10) {
       t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=FALSE) ]
       b.df <- data.frame (Xvar, t.yvar) 
       permt.samples[[i]] <- b.df 
    }
    str(permt.samples)
    permt.samples[1]

MONTE CARLO METHODEN

"Monte-Carlo-Methoden (oder Monte-Carlo-Experimente) sind eine breite Klasse von Berechnungsalgorithmen, die auf wiederholten Zufallsstichproben beruhen , um numerische Ergebnisse zu erhalten. Typischerweise werden Simulationen mehrmals ausgeführt, um die Verteilung einer unbekannten probabilistischen Entität zu erhalten. Der Name kommt von der Ähnlichkeit der Technik bis zum Akt des Spielens und Aufzeichnens entsteht ein echtes Spielkasino. "siehe Wikipedia

"In der angewandten Statistik werden Monte-Carlo-Methoden im Allgemeinen für zwei Zwecke verwendet:

(1) Vergleich von Konkurrenzstatistiken für kleine Stichproben unter realistischen Datenbedingungen. Obwohl die Fehler- und Leistungseigenschaften von Statistiken vom Typ I für Daten berechnet werden können, die aus klassischen theoretischen Verteilungen (z. B. Normalkurve, Cauchy-Verteilung) für asymptotische Bedingungen (d. H. Unendliche Probengröße und infinitesimal kleiner Behandlungseffekt) abgeleitet wurden, sind es häufig echte Daten habe keine solchen Distributionen.

(2) Bereitstellung von Implementierungen von Hypothesentests, die effizienter sind als genaue Tests wie Permutationstests (die häufig nicht berechnet werden können), während sie genauer sind als kritische Werte für asymptotische Verteilungen.

Monte-Carlo-Methoden sind auch ein Kompromiss zwischen ungefähren Randomisierungs- und Permutationstests . Ein ungefährer Randomisierungstest basiert auf einer bestimmten Teilmenge aller Permutationen (was eine potenziell enorme Haushaltsführung mit sich bringt, für die Permutationen in Betracht gezogen wurden). Der Monte-Carlo-Ansatz basiert auf einer festgelegten Anzahl zufällig gezeichneter Permutationen (wobei ein geringer Genauigkeitsverlust ausgetauscht wird, wenn eine Permutation zweimal - oder häufiger - gezeichnet wird, damit nicht nachverfolgt werden muss, welche Permutationen bereits ausgewählt wurden ). "

Sowohl der MC- als auch der Permutationstest werden manchmal gemeinsam als Randomisierungstests bezeichnet . Der Unterschied ist, dass wir in MC die Permutations-Samples abtasten, anstatt alle möglichen Kombinationen zu verwenden, siehe .

CROSS VALIDATION

Die Idee jenseits der Kreuzvalidierung ist, dass Modelle mit Daten getestet werden sollten, die nicht zum Modell passen. Eine Kreuzvalidierung wird möglicherweise am häufigsten im Zusammenhang mit Vorhersagen verwendet .

Die Kreuzvalidierung ist eine statistische Methode zur Validierung eines Vorhersagemodells. Teilmengen der Daten werden zur Verwendung als Validierungssätze ausgegeben ; ein Modell wird an die verbleibenden Daten (ein Trainingssatz) angepasst und zur Vorhersage für den Validierungssatz verwendet Die Qualität der Vorhersagen über die Validierungssätze ergibt ein Gesamtmaß für die Vorhersagegenauigkeit.

Eine Form der Kreuzvalidierung lässt jeweils eine Beobachtung aus. das ist ähnlich wie beim jackknife. Eine andere, K-fache Kreuzvalidierung, teilt die Daten in K Teilmengen auf; Jedes Modell wird der Reihe nach als Validierungssatz angezeigt. "Siehe Wikipedia . Die Kreuzvalidierung erfolgt normalerweise mit quantitativen Daten. Sie können Ihre qualitativen (Faktordaten) in quantitative Daten konvertieren, um sie in ein lineares Modell einzufügen und dieses Modell zu testen. Das Folgende ist einfach Hold-out-Strategie, bei der 50% der Daten für die Modellvorhersage verwendet werden, während der Rest für Tests verwendet wird. Nehmen wir an, es Xvarhandelt sich auch um eine quantitative Variable.

    Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
    Xvar <- c(rep(1, 5),  rep(2, 5),    rep(3, 5))
    mydf <- data.frame (Yvar, Xvar)
    training.id <- sample(1:nrow(mydf), round(nrow(mydf)/2,0), replace = FALSE)
    test.id <- setdiff(1:nrow(mydf), training.id)
   # training dataset 
    mydf.train <- mydf[training.id]

    #testing dataset 
    mydf.test <- mydf[test.id]

Im Gegensatz zu Bootstrap- und Permutationstests unterscheidet sich der Kreuzvalidierungsdatensatz für Training und Test. Die folgende Abbildung zeigt eine Zusammenfassung der Neuabtastung bei verschiedenen Methoden.

Bildbeschreibung hier eingeben

Hoffe das hilft ein bisschen.

rdorlearn
quelle
23
Das ist beeindruckend - und vor allem deshalb, weil es Ihre erste Antwort ist! Ich hoffe, dass Sie hier weiterhin teilnehmen und freue mich auf Ihre zukünftigen Beiträge auf unserer Website.
Whuber
Diese Antwort ist so toll, ein großes Bild Antwort. Einige der Links scheinen jedoch aufgegeben zu sein. Hat jemand eine Ahnung, wo die Links sind?
Tintinthong
6

Hier ist mein Beitrag.

Daten

Yvar <- c(8,9,10,13,12,
          14,18,12,8,9,
          1,3,2,3,4)
Xvar <- rep(LETTERS[1:3], each=5)
mydf <- data.frame(Yvar, Xvar)

Monte Carlo

Ich sehe Monte Carlo als eine Methode, um eine Verteilung einer (Ergebnis-) Zufallsvariablen zu erhalten, die das Ergebnis einer nichttrivialen Funktion anderer (Eingabe-) Zufallsvariablen ist. Ich sehe nicht sofort eine Überschneidung mit der aktuellen ANOVA-Analyse, wahrscheinlich können andere Forumsmitglieder hier ihre Beiträge einbringen.

Bootstrapping

Ziel ist es, eine Vorstellung von der Unsicherheit einer Statistik zu erhalten, die aus einer beobachteten Stichprobe berechnet wird. Zum Beispiel: Wir können berechnen, dass der Stichprobenmittelwert von Yvar 8,4 beträgt, aber wie sicher sind wir in Bezug auf den Bevölkerungsmittelwert für Yvar? Der Trick besteht darin, so zu verfahren, als wäre die Stichprobe die Population und viele Male eine Stichprobe aus dieser gefälschten Population.

n <- 1000
bootstrap_means <- numeric(length=n)
for(i in 1:n){
   bootstrap_sample <- sample(x=Yvar, size=length(Yvar), replace=TRUE)
   bootstrap_means[i] <- mean(bootstrap_sample)
}
hist(bootstrap_means)

Wir haben nur Proben genommen und keine parametrische Verteilung angenommen. Dies ist der nichtparametrische Bootstrap . Wenn Sie beispielsweise davon ausgehen möchten, dass Xvar normal verteilt ist, können Sie auch eine Stichprobe aus einer Normalverteilung ( rnorm(...)) mit dem geschätzten Mittelwert und der Standardabweichung erstellen . Dies ist der parametrische Bootstrap .

Vielleicht geben andere Benutzer Anwendungen des Bootstraps in Bezug auf die Effektgrößen der XvarEbenen an?

Jackknifing

Das Klappmesser scheint etwas veraltet zu sein. Der Vollständigkeit halber könnte man es mehr oder weniger mit dem Bootstrap vergleichen, aber die Strategie ist hier, um zu sehen, was passiert, wenn wir eine Beobachtung auslassen (und dies für jede Beobachtung wiederholen).

Gegenvalidierung

Bei der Kreuzvalidierung teilen Sie Ihren (normalerweise großen) Datensatz in einen Trainingssatz und einen Validierungssatz auf, um festzustellen, wie gut Ihr geschätztes Modell die Werte im Validierungssatz vorhersagen kann. Ich persönlich habe noch keine Anwendung der Kreuzvalidierung bei ANOVA gesehen, daher überlasse ich diesen Teil lieber anderen.

Randomisierungs- / Permutationstests

Seien Sie gewarnt, Terminologie wird nicht vereinbart. Siehe Unterschied zwischen Randomisierungstest und Permutationstest .

Die Nullhypothese wäre, dass es keinen Unterschied zwischen den Populationen der Gruppen A, B und C gibt. Es sollte also keine Rolle spielen, wenn wir die Bezeichnungen der 15 Werte von Xvar zufällig austauschen. Wenn der ursprünglich beobachtete F-Wert (oder eine andere Statistik) nicht mit denen übereinstimmt, die nach einem zufälligen Austausch von Markierungen erhalten wurden, war dies wahrscheinlich von Bedeutung, und die Nullhypothese kann zurückgewiesen werden.

observed_F_value <- anova(lm(Yvar ~ Xvar))$"F value"[1]

n <- 10000
permutation_F_values <- numeric(length=n)

for(i in 1:n){
   # note: the sample function without extra parameters defaults to a permutation
   temp_fit <- anova(lm(Yvar ~ sample(Xvar)))
   permutation_F_values[i] <- temp_fit$"F value"[1]
}

hist(permutation_F_values, xlim=range(c(observed_F_value, permutation_F_values)))
abline(v=observed_F_value, lwd=3, col="red")
cat("P value: ", sum(permutation_F_values >= observed_F_value), "/", n, "\n", sep="")

Histogramm

Seien Sie jedoch vorsichtig, wenn Sie die Etiketten bei komplexen Designs neu zuweisen. Beachten Sie auch, dass bei ungleichen Varianzen die Nullhypothese der Austauschbarkeit nicht an erster Stelle zutrifft, sodass dieser Permutationstest nicht korrekt wäre.

Hier haben wir nicht explizit alle möglichen Permutationen der Labels durchgegangen, dies ist eine Monte-Carlo- Schätzung des P-Wertes. Mit kleinen Datensätzen können Sie alle möglichen Permutationen durchgehen, aber der obige R-Code ist etwas einfacher zu verstehen.

lgbi
quelle