Visualisierung der Bayes'schen Anpassungsgüte für die logistische Regression

10

Für ein Bayes'sches logistisches Regressionsproblem habe ich eine posteriore prädiktive Verteilung erstellt. Ich nehme eine Stichprobe aus der Vorhersageverteilung und erhalte für jede meiner Beobachtungen Tausende von Stichproben von (0,1). Die Visualisierung der Anpassungsgüte ist weniger als interessant, zum Beispiel:

Geben Sie hier die Bildbeschreibung ein

Dieses Diagramm zeigt die 10 000 Proben + den beobachteten Bezugspunkt (ganz links kann man eine rote Linie erkennen: Ja, das ist die Beobachtung). Das Problem ist, dass diese Darstellung kaum informativ ist und ich 23 davon habe, eine für jeden Datenpunkt.

Gibt es eine bessere Möglichkeit, die 23 Datenpunkte und die hinteren Proben zu visualisieren?


Ein weiterer Versuch:

Geben Sie hier die Bildbeschreibung ein


Ein weiterer Versuch basiert auf dem Papier hier

Geben Sie hier die Bildbeschreibung ein

Cam.Davidson.Pilon
quelle
1
Sehen Sie hier für ein Beispiel , bei dem die obigen Daten über Technik funktioniert.
Cam.Davidson.Pilon
Das ist viel verschwendeter Platz IMO! Haben Sie wirklich nur 3 Werte (unter 0,5, über 0,5 und die Beobachtung) oder ist das nur ein Artefakt des Beispiels, das Sie gegeben haben?
Andy W
Es ist in der Tat schlimmer: Ich habe 8500 0s und 1500 1s. Das Diagramm schiebt diese Werte nur, um ein verbundenes Histogramm zu erstellen. Aber ich stimme zu: viel Platzverschwendung. Wirklich, für jeden Datenpunkt kann ich ihn auf ein Verhältnis (ex 8500/10000) und eine Beobachtung (entweder 0 oder 1)
reduzieren
Sie haben also 23 Datenpunkte und wie viele Prädiktoren? Und ist Ihre posteriore prädiktive Verteilung für neue Datenpunkte oder für die 23, die Sie zur Anpassung an das Modell verwendet haben?
Wahrscheinlichkeitslogik
Ihre aktualisierte Handlung entspricht in etwa dem, was ich vorschlagen wollte. Was repräsentiert die x-Achse? Es scheint, dass Sie einige Punkte überlagert haben - was mit nur 23 unnötig erscheint.
Andy W

Antworten:

5

Ich habe das Gefühl, dass Sie nicht alle Waren für Ihre Situation aufgeben, aber angesichts dessen, was wir vor uns haben, können wir die Nützlichkeit eines einfachen Punktdiagramms zur Anzeige der Informationen in Betracht ziehen .

Punktdiagramm

Die einzige wirkliche Sache, die hier nicht zu finden ist (das sind vielleicht keine Standardverhalten), sind:

  • Ich habe redundante Codierungen, Form und Farbe verwendet, um zwischen den beobachteten Werten ohne Fehler und Fehler zu unterscheiden. Mit solch einfachen Informationen ist es nicht erforderlich, einen Punkt in der Grafik zu platzieren. Außerdem haben Sie ein Problem, wenn der Punkt in der Nähe der Mittelwerte liegt. Es ist mehr Nachschlagen erforderlich, um festzustellen, ob der beobachtete Wert entweder Null oder Eins ist.
  • Ich habe die Grafik nach dem beobachteten Anteil sortiert.

Das Sortieren ist der wahre Kicker für solche Punktdiagramme. Das Sortieren nach Proportionswerten hilft dabei, hohe Restbeobachtungen leicht aufzudecken. Ein System, in dem Sie leicht nach Werten sortieren können, die entweder im Plot oder in den externen Merkmalen der Fälle enthalten sind, ist der beste Weg, um das Beste für Ihr Geld zu bekommen.

Dieser Rat gilt auch für kontinuierliche Beobachtungen. Sie können die Punkte entsprechend dem negativen oder positiven Residuum färben / formen und den Punkt dann entsprechend dem absoluten (oder quadratischen) Residuum dimensionieren. Dies ist hier jedoch aufgrund der Einfachheit der beobachteten Werte IMO nicht erforderlich.

Andy W.
quelle
1
Ich mag diese Lösung und den Inhalt, ich warte nur auf andere Einsendungen. Danke Andy.
Cam.Davidson.Pilon
1
@ Cam.Davidson.Pilon - Ich warte auch auf andere Einsendungen! Da Ihr Modell nur einen Prädiktor hat - eine Sortierung nach dem vorhergesagten Anteil an Fehlern wäre gleichbedeutend mit einer Sortierung nach Temperatur (unter der Annahme eines monotonen Effekts - wie in Ihrem Diagramm dargestellt). Vielleicht kommt jemand mit einer anderen Lösung, die es einem effektiv ermöglicht, sowohl den vorhergesagten Anteil als auch die ursprüngliche Temperatur (oder etwas völlig anderes) zu sehen. Diese Anzeige ist gut, um schlechte Vorhersagen zu sehen, aber nicht sehr gut, um nichtlineare Effekte zu sehen.
Andy W
1
Gerne vergebe ich Ihnen das Kopfgeld. Sortieren ist der Schlüssel zur Präsentation, und das Papier, das aus Ihrem vorherigen Beitrag verlinkt wurde, werde ich verwenden. Vielen Dank!
Cam.Davidson.Pilon
4

Die übliche Methode zur Visualisierung der Anpassung eines Bayes'schen logistischen Regressionsmodells mit einem Prädiktor besteht darin, die Vorhersageverteilung zusammen mit den entsprechenden Proportionen zu zeichnen. (Bitte lassen Sie mich wissen, wenn ich Ihre Frage verstanden habe)

Ein Beispiel mit dem beliebten Bliss-Datensatz.

Geben Sie hier die Bildbeschreibung ein

Code unten in R:

library(mcmc)

# Beetle data

ni = c(59, 60, 62, 56, 63, 59, 62, 60) # Number of individuals
no = c(6, 13, 18, 28, 52, 53, 61, 60) # Observed successes
dose = c(1.6907, 1.7242, 1.7552, 1.7842, 1.8113, 1.8369, 1.8610, 1.8839) # dose

dat = cbind(dose,ni,no)

ns = length(dat[,1])

# Log-posterior using a uniform prior on the parameters

logpost = function(par){
var = dat[,3]*log(plogis(par[1]+par[2]*dat[,1])) + (dat[,2]-dat[,3])*log(1-plogis(par[1]+par[2]*dat[,1]))

if( par[1]>-100000 ) return( sum(var) )
else return(-Inf)
}

# Metropolis-Hastings
N = 60000

samp <- metrop(logpost, scale = .35, initial = c(-60,33), nbatch = N)

samp$accept

burnin = 10000
thinning = 50

ind = seq(burnin,N,thinning)

mu1p =   samp$batch[ , 1][ind]

mu2p =   samp$batch[ , 2][ind]


# Visual tool

points = no/ni
# Predictive dose-response curve
DRL <- function(d) return(mean(plogis(mu1p+mu2p*d)))
DRLV = Vectorize(DRL)

v <- seq(1.55,2,length.out=55)
FL = DRLV(v)

plot(v,FL,type="l",xlab="dose",ylab="response")
points(dose,points,lwd=2)
Cerberis
quelle
Ich bin kein R-Typ. Können Sie die Handlung / Ausgabe bereitstellen?
Cam.Davidson.Pilon
@ Cam.Davidson.Pilon Es tut mir leid, mein Ruf erlaubt mir nicht, Grundstücke aufzunehmen. Die Idee ist jedoch, die gesamte Dosis-Wirkungs-Kurve zusammen mit den beobachteten Anteilen zu zeichnen.
Cerberis
Ich habe das Bild hinzugefügt. Sie nehmen eine andere Struktur für die Daten an, in denen sich die OPs nicht direkt auf Ihr Beispiel erstrecken. Die Daten des OP wären wie wenn Ihre ni = 23und no = 7und jede der 23 Personen eine andere haben dose. Sie können jedoch ein ähnliches Diagramm für die OP-Daten erstellen (Punkte werden entweder auf 0 oder 1 auf der Y-Achse platziert, und Sie zeichnen die Funktion). Einige Beispiele für ähnliche Diagramme zur logistischen Regression finden Sie in den Referenzen, die ich zu dieser Antwort gebe .
Andy W
@AndyW Danke dafür und auch für die Klarstellung.
Cerberis
@AndyW ah die Papiere, die Sie verlinken, sind sehr nützlich! Ich muss mir diese genauer ansehen, um zu sehen, ob ich sie anwenden kann.
Cam.Davidson.Pilon
3

Ich antworte auf eine Anfrage nach alternativen grafischen Techniken, die zeigen, wie gut simulierte Fehlerereignisse mit beobachteten Fehlerereignissen übereinstimmen. Die Frage stellte sich in "Probabilistische Programmierung und Bayes'sche Methoden für Hacker", die hier zu finden sind . Hier ist mein grafischer Ansatz:

Simulierte vs beobachtete O-Ring-Fehler

Code hier gefunden .

user35216
quelle
Interessant - können Sie Argumente dafür liefern, warum diese Technik angewendet werden soll? Danke für das Teilen!
Cam.Davidson.Pilon
Dies ist ein probabilistisches, kein deterministisches Ergebnis. Daher suchte ich nach einer Darstellung, die verschiedene Dinge vermittelt: 1) den Bereich der beobachteten und vorhergesagten Ereignisse; 2: die Wahrscheinlichkeitsverteilung der vorhergesagten Fehler; 3) die Wahrscheinlichkeitsverteilung vorhergesagter Nichtausfälle; und 4) Bereiche, in denen ein Ausfall wahrscheinlicher ist, ein Nichtausfall wahrscheinlicher ist und Bereiche, in denen sich Ausfall- und Nichtausfallwahrscheinlichkeiten überschneiden. Diese Grafik zeigt all das mit meinen Augen.
user35216
Einige weitere Ergänzungen / Erläuterungen: 1) der Temperaturbereich der beobachteten und vorhergesagten Ereignisse; 5) tatsächlich beobachtete Fehler und
Nichtfehler