Ich bin nicht auf der Suche nach einer Plug-and-Play-Methode wie BEST in R, sondern nach einer mathematischen Erklärung einiger Bayes'scher Methoden, mit denen ich die Differenz zwischen dem Mittelwert zweier Stichproben testen kann.
39
Antworten:
Dies ist eine gute Frage, die sehr oft auftaucht: Link 1 , Link 2 . Die Veröffentlichung Bayesian Estimation Superseeds the T-Test , auf die Cam.Davidson.Pilon hingewiesen hat, ist eine hervorragende Ressource zu diesem Thema. Es ist auch sehr neu, veröffentlicht im Jahr 2012, was meiner Meinung nach teilweise auf das aktuelle Interesse an der Region zurückzuführen ist.
Ich werde versuchen, eine mathematische Erklärung einer Bayes'schen Alternative zum Zwei-Stichproben-T-Test zusammenzufassen. Diese Zusammenfassung ähnelt der BEST-Veröffentlichung, in der der Unterschied in zwei Stichproben durch Vergleich der Unterschiede in der hinteren Verteilung bewertet wird (siehe unten in R).
Um die Stichprobenmittel zu vergleichen, müssen wir schätzen, was sie sind. Die Bayes'sche Methode verwendet dazu den Bayes'schen Satz: P (A | B) = P (B | A) * P (A) / P (B) (die Syntax von P (A | B) wird als die Wahrscheinlichkeit von gelesen A gegeben B)
Lassen Sie es uns in Code setzen. Code macht alles besser.
Ich habe im Vorfeld einige Annahmen getroffen, die gerechtfertigt sein müssen. Um die Prioren davon abzuhalten, den geschätzten Mittelwert zu beeinträchtigen, wollte ich sie über plausible Werte hinweg breit und einheitlich machen, damit die Daten die Merkmale des Posterioren hervorbringen. Ich verwendete die empfohlene Einstellung von BEST und verteilte die mus normalerweise mit mean = mean (gepoolt) und einer breiten Standardabweichung = 1000 * sd (gepoolt). Die Standardabweichungen habe ich auf eine breite Exponentialverteilung gesetzt, weil ich eine breite unbegrenzte Verteilung wollte.
Jetzt können wir den posterior machen
Wir werden die posteriore Verteilung unter Verwendung einer Markovkette Monte Carlo (MCMC) mit Metropolis Hastings-Modifikation untersuchen. Mit Code ist es am einfachsten zu verstehen.
Die Ergebnismatrix ist eine Liste von Stichproben aus der posterioren Verteilung für jeden Parameter, anhand derer wir unsere ursprüngliche Frage beantworten können: Unterscheidet sich Stichprobe 1 von Stichprobe 2? Um jedoch zunächst die Auswirkungen der Startwerte zu vermeiden, werden die ersten 500 Werte der Kette "eingebrannt".
Unterscheidet sich sample.1 von sample.2?
Aus dieser Analyse würde ich den Schluss ziehen, dass die Wahrscheinlichkeit, dass der Mittelwert für Probe 1 unter dem Mittelwert für Probe 2 liegt, bei 99,5% liegt.
Ein Vorteil des Bayes'schen Ansatzes ist, wie in der BEST-Veröffentlichung hervorgehoben, dass er starke Theorien aufstellen kann. ZB wie groß ist die Wahrscheinlichkeit, dass sample.2 5 Einheiten größer als sample.1 ist?
Wir kommen zu dem Schluss, dass die Wahrscheinlichkeit, dass der Mittelwert von Stichprobe 2 um 5 Einheiten höher ist als der von Stichprobe 1, bei 93% liegt. Ein aufmerksamer Leser würde dies interessant finden, da wir wissen, dass die wahren Populationen Mittelwerte von 100 bzw. 103 haben. Dies ist höchstwahrscheinlich auf die geringe Stichprobengröße und die Auswahl einer Normalverteilung für die Wahrscheinlichkeit zurückzuführen.
Ich werde diese Antwort mit einer Warnung abschließen: Dieser Code dient zu Unterrichtszwecken. Verwenden Sie für eine echte Analyse RJAGS und passen Sie je nach Stichprobengröße eine t-Verteilung für die Wahrscheinlichkeit an. Bei Interesse schicke ich einen T-Test mit RJAGS.
EDIT: Wie hier angefordert handelt es sich um ein JAGS-Modell.
quelle
Die ausgezeichnete Antwort von user1068430 in Python implementiert
quelle
Mit einer Bayes'schen Analyse haben Sie mehr Dinge zu spezifizieren (das ist eigentlich eine gute Sache, da es viel mehr Flexibilität und Fähigkeit gibt, das zu modellieren, was Sie für die Wahrheit halten). Nehmen Sie Normalen für die Wahrscheinlichkeiten an? Werden die beiden Gruppen die gleiche Varianz haben?
Ein einfacher Ansatz besteht darin, die 2 Mittelwerte (und 1 oder 2 Varianzen / Dispersionen) zu modellieren und anschließend die Differenz der 2 Mittelwerte und / oder das glaubwürdige Intervall auf die Differenz der 2 Mittelwerte zu untersuchen.
quelle
Es gibt verschiedene Ansätze, dies zu "testen". Ich werde ein paar erwähnen:
Wenn Sie eine explizite Entscheidung wünschen, können Sie sich die Entscheidungstheorie ansehen.
Eine ziemlich einfache Sache, die manchmal gemacht wird, ist, ein Intervall für den Unterschied in den Mitteln zu finden und zu überlegen, ob es 0 enthält oder nicht. Dazu müsste mit einem Modell für die Beobachtungen, Prioritäten bei den Parametern und der Berechnung der posterioren Verteilung der Mittelwertdifferenz, die von den Daten abhängig ist, begonnen werden.
Sie müssen angeben, um welches Modell es sich handelt (z. B. normale, konstante Varianz), und dann (mindestens) einige Prioritäten für die Differenz der Mittelwerte und eine Prioritätsstufe für die Varianz. Möglicherweise haben Sie Prioritäten für die Parameter dieser Prioritäten. Oder Sie nehmen keine konstante Varianz an. Oder Sie nehmen etwas anderes als Normalität an.
quelle