Einfaches Beispiel, das die Vorteile der Bayesian Model Averaging (BMA) zeigt

12

Ich beziehe einen Bayesian Model Averaging (BMA) -Ansatz in meine Forschung ein und werde meinen Kollegen in Kürze eine Präsentation über meine Arbeit geben. BMA ist auf meinem Gebiet jedoch nicht wirklich bekannt. Nachdem ich ihnen die gesamte Theorie vorgestellt und sie auf mein Problem angewendet habe, möchte ich ein einfaches, aber lehrreiches Beispiel dafür präsentieren, warum BMA funktioniert.

Ich habe über ein einfaches Beispiel mit zwei Modellen nachgedacht, aus denen man auswählen kann, aber das wahre Datengenerierungsmodell (DGM) liegt irgendwo dazwischen, und die Beweise sprechen für keines von ihnen wirklich. Wenn Sie also eine auswählen und fortfahren, würden Sie die Modellunsicherheit ignorieren und einen Fehler machen, aber BMA gibt, obwohl das wahre Modell nicht Teil des Modellsatzes ist, zumindest die korrekte hintere Dichte des interessierenden Parameters an. Zum Beispiel gibt es jeden Tag zwei Wettervorhersagen (A und B) und eine möchte das Wetter am besten vorhersagen. In der klassischen Statistik würden Sie also zuerst versuchen, die beste Vorhersage zwischen den beiden zu finden, aber was ist, wenn die Wahrheit irgendwo dazwischen liegt? (das heißt, manchmal ist A richtig, manchmal B). Aber ich konnte es nicht formalisieren. So etwas, aber ich bin sehr offen für Ideen. Ich hoffe diese Frage ist spezifisch genug!

In der Literatur habe ich keine schönen Beispiele von dem gefunden, was ich bisher gelesen habe:

  • Kruschke (2011) ist zwar eine großartige Einführung in die Bayes'sche Statistik, konzentriert sich jedoch nicht wirklich auf BMA, und das Beispiel für den Münzwurf in Kapitel 4 eignet sich hervorragend zur Einführung der Bayes'schen Statistik, überzeugt jedoch einen Kollegen nicht wirklich von der Verwendung von BMA. ("Warum habe ich wieder drei Modelle, eines sagt, dass die Münze fair ist und zwei, dass sie in beide Richtungen voreingenommen ist?")
  • Alle anderen Dinge, die ich lese ( Koop 2003 , Koop / Poirier / Tobias (2007) , Hoeting et al. (1999) und viele andere), sind großartige Referenzen, aber ich habe kein einfaches Spielzeugbeispiel darin gefunden.

Aber vielleicht habe ich hier gerade eine gute Quelle verpasst.

Hat jemand ein gutes Beispiel, mit dem er oder sie BMA einführt? Vielleicht sogar durch Zeigen der Wahrscheinlichkeiten und Posterioren, weil ich denke, dass das ziemlich lehrreich wäre.

Christoph_J
quelle
Ein kurzes Update: Ich bin gerade auf diese Präsentation gestoßen, die sich auf Freedmans Paradoxon in Abschnitt 2 bezieht . Es gibt ein kurzes Beispiel, in dem 39 zufällige Kovariaten simuliert werden und wenn man nur nach dem besten Modell sucht, findet man schließlich signifikante Kovariaten. Die Modellmittelung ist offenbar ein Heilmittel für dieses Problem. Ich poste hier keine Lösung mit Code, weil ich ehrlich gesagt nicht weiß, wie die Zahlen dort abgeleitet werden.
Christoph_J
(Fortsetzung) Worüber genau mitteln sie? Der beste Parameter? Alle Parameter (ich denke, das wäre nur in diesem speziellen Beispiel sinnvoll). Dennoch denke ich, dass die Diagramme in Kombination mit dem Hinweis auf Freedmans Paradoxon sehr hilfreich sind. Vielleicht hilft es einigen.
Christoph_J

Antworten:

8

Ich habe kürzlich etwas Ähnliches gemacht. Nicht so sehr, um andere zu überzeugen, sondern um ein kleines Projekt zu machen, bei dem ich einen kleinen Eindruck von BMA bekommen konnte. Ich habe einen Datensatz mit einer binären Antwort generiert, drei unabhängigen Variablen, die sich auf die Antwort auswirken, und sieben Variablen, die sich nicht auf die Antwort auswirken. Ich habe dann die BMA-Ergebnisse mit den häufigen Schätzungen der logistischen Regression verglichen. Ich denke, dass zumindest in diesem Fall der BMA-Ansatz ziemlich gut zu sein scheint. Wenn Sie es zugänglicher machen möchten, können Sie die Variablen oder etwas anderes benennen, anstatt sie als generisches und .yXy

Der R-Code, den ich dafür verwendet habe, ist unten dargestellt. Hoffe es kann dich inspirieren!

# The sample size
n <- 100

# The 'true' coefficient vector
Beta <- cbind(c(-1.5, 0.45, -3))

# Generate the explanatory variables which have an effect on the outcome
set.seed(1)
X <- cbind(rnorm(n, 0, 1), rnorm(n, 4, 2), rnorm(n, 0.5, 1))

# Convert this into probabilities
prob <- 1/(1+exp(-X %*% Beta))

# Generate some uniform numbers. If the elements are smaller than the corresponding elements in the prob vector, then return 1.
set.seed(2)
runis <- runif(n, 0, 1)
y <- ifelse(runis < prob, 1, 0)

# Add the nonsense variables
X <- cbind(X, rpois(n, 3))        # Redundant variable 1 (x4)
X <- cbind(X, rexp(n, 10))        # Redundant variable 2 (x5)
X <- cbind(X, rbeta(n, 3, 10))    # Redundant variable 3 (x6)
X <- cbind(X, rbinom(n, 10, 0.5)) # Redundant variable 4 (x7)
X <- cbind(X, rpois(n, 40))       # Redundant variable 5 (x8)
X <- cbind(X, rgamma(n, 10, 20))  # Redundant variable 6 (x9)
X <- cbind(X, runif(n, 0, 1))     # Redundant variable 7 (x10)


# The BMA
library(BMA)
model <- bic.glm(X, y,  glm.family="binomial", factor.type=FALSE, thresProbne0 = 5, strict = FALSE)

# The frequentist model
model2 <- glm(y~X, family = "binomial")

old.par <- par()
par(mar=c(3,2,3,1.5))
plot(model, mfrow=c(2,5))
par(old.par)

summary(model)
summary(model2)
hejseb
quelle
2
Das ist ein schönes Beispiel, also +1 dafür. Wie Sie bereits betont haben, hilft es jedoch nicht wirklich, andere davon zu überzeugen, BMA zu verwenden. Eigentlich führe ich es aus und es hat sogar einige Zeit gedauert, um mich davon zu überzeugen, dass BMA hier besser ist als der klassische Ansatz: Das beste Modell ist nicht das wahre Modell (das beste Modell enthält nur x2 und x3) und die Parameter für Modell2 nicht so viel aus, zumindest für die relevanten Parameter. Es werden jedoch einige wichtige Parameter x5 und x6 angezeigt, die nicht vorhanden sein sollten, und BMA leistet hervorragende Arbeit, um Ihnen mitzuteilen, dass dies nicht signifikant ist. Dies ist also ein Plus für BMA.
Christoph_J
2

Eine großartige Ressource dafür ist:
Bayesian Model Averaging with BMS von Stefan Zeugner (2012)

Es verwendet das R-Paket BMS , weitere Informationen finden Sie hier:
http://bms.zeugner.eu/

Zwei praktische Tutorials zum Reproduzieren von Beispielen aus der Praxis mit dem Paket finden Sie hier:

Eine allgemeinere motivierende und aktuelle Einführung in die Bayes'schen Methoden ist das folgende Papier:

Die Zeit ist gekommen: Bayesianische Methoden zur Datenanalyse in den Organisationswissenschaften von John K. Kruschke, Herman Aguinis und Harry Joo

vonjd
quelle
Danke für die Links, aber sie sind nicht wirklich das, wonach ich suche. Ich kannte und benutzte das Paket tatsächlich vorher (es ist großartig) und stimme zu, dass ihre Dokumentation wirklich lehrreich ist. Aber auch hier ist die Absicht des Autors nicht, jemanden (hoffentlich in weniger als 5 Minuten) davon zu überzeugen, warum er BMA verwenden soll, sondern angesichts der Tatsache, dass er es verwenden möchte, wie er es mit seinem Paket macht. Sie beginnen also mit dem attitudeBeispiel und wenn Sie durch Ihren ersten Link scrollen, gibt es wirklich keine Tabelle oder Figur, in der Sie schreien würden: "Meine Güte, ich bin froh, BMA verwendet zu haben!"
Christoph_J
Fortsetzung: Nur um klar zu sein, dies ist natürlich in keiner Weise eine Kritik an ihrer Dokumentation: Es ist überhaupt nicht ihre Absicht. Vielleicht um ein Beispiel zu geben, nach dem ich suche. Nehmen wir an, Sie möchten das Problem der Ausreißer in einer linearen Regression erklären. Sie würden wahrscheinlich mit etwas wie den Diagrammen hier beginnen . Natürlich wird das Problem bei realen Daten niemals so einfach sein. Es wird schwierig sein, wie Sie einen Ausreißer usw. definieren. Aber mit einem solchen Diagramm weiß jeder, was los ist.
Christoph_J
3
@Christoph_J: Kennen Sie dieses Papier: indiana.edu/~kruschke/articles/KruschkeAJ2012.pdf - es geht nicht so sehr um BMA, sondern darum, jemanden davon zu überzeugen, Bayes'sche Methoden überhaupt anzuwenden - vielleicht ist dies etwas, das hilfreich ist Sie :-)
vonjd
1
Ich wusste das nicht und es ist eine wirklich gute Einführung in die Bayes'schen Methoden, also +1 für den Link. Vielen Dank.
Christoph_J
@Christoph_J: Ich habe den Beitrag entsprechend bearbeitet: Ihre +1 für die Antwort hat nicht funktioniert, es ist immer noch 0 (?!?),
Könnten