Bayes Faktor für den Modellvergleich

Fragen, die sich auf kein spezielles Verfahren beziehen.

Bayes Faktor für den Modellvergleich

Beitragvon fassy » Mo 28. Okt 2019, 19:35

Hallo zusammen,

Nachdem mir hier bei meiner letzen Frage so sensational geholfen wurde, habe ich jetzt noch einf Frage und hoffe das mir da der ein oder andere Denkanstoß gegeben werden kann.

Ich habe jetzt also zwei Modelle, einmal Modell M1 und einmal Model M2 die Werte schätzen und möchte über den Bayes Faktor eine Aussage bekommen welches der beiden Modell besser ist. Soweit, so gut... Modell 2 basiert auf Modell 1 plus weitere Prediktoren die alle zusammen in einem Random Forrest (danke noch mal an Bernard für den Tip) verarbeitet werden.

Ich weiß also bei beiden Modell recht wenig über die interne Struktur, habe also nur eine Reihe von:

M1_y = 4, M2_y = 7 und der echte gemessene Wert y = 6, das ganze dann X mal. Dazu kann ich einigermaßen plausibel eine Verteilung vermuten, sagen wir mal beispielsweise wir gehen von einer Normalverteilung bei M1, M2 und y aus. Die Marginal Probability könnt ich ja auch noch ausrechnen lassen.

Mein Problem ist jetzt, dass auch nach ausführlicher Lektüre von Bayes Statistik Büchern ich mir immer noch im unklaren bin wie ich jetzt eigentlich diese beiden Modelle vergleichen kann. Da ist irgendwo ein Knoten in meinem Kopf. Und irgendwie stoße ich immer wieder bei allen Varianten gegen irgendeine Wand...

Alle Varianten die ich jetzt gefunden habe gehen davon aus das ich das Modell auch schon anhand der Daten in Bayes modelliere, z.B. als Baysche ANOVA oder Baysche Regression und dann auszuwerten wie sich der Bayes Faktor zwischen den Modellen verändert.

Das 'BayesFactor' Paket für R sieht ja schon mal ganz gut aus. Aber ich komme einfach nicht dahinter was ich jetzt eigentlich machen muss, sprich welches Verfahren ich für ein solchen Vergleich verwenden müsste.

Oder muss ich direkt nur die Delta Werte vergleichen? Sprich M1_y - y gegen M2_y - y? Und dann sowas wie ein Mittelwertsvergleich machen?

Ich würde mich über einen Denkanstoß sehr freuen!

Viele Grüße,
fassy
fassy
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Di 24. Sep 2019, 10:08
Danke gegeben: 5
Danke bekommen: 0 mal in 0 Post

Re: Bayes Faktor für den Modellvergleich

Beitragvon bele » Mo 28. Okt 2019, 23:06

"Nur Deltas vergleichen" - das macht man üblicherweise mit quadrierten Deltas als Root Mean Squared Error RMSE.

Vielleicht ist es sinnvoller, das große Ganze, also Dein eigentliches Ziel, vorzustellen, als sich voreilig auf ein GOF Maß festzulegen.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5769
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1353 mal in 1340 Posts

folgende User möchten sich bei bele bedanken:
fassy

Re: Bayes Faktor für den Modellvergleich

Beitragvon fassy » Di 29. Okt 2019, 17:29

Hallo Bernard,

RMSE zu vergleichen wäre natürlich eine Möglichkeit. Das ist schon richtig. Oder auch r^2... oder oder oder... viele Wege führen ja bekanntlich nach Rom. Dummerweise habe ich mich jetzt auf "das mache ich irgendwie mit Bayes Statistik" eingelassen und muss da jetzt durch. Oder eher möchte da durch und aktzeptiere noch nicht aufzugeben. :)


Also noch einmal die Problembeschreibung, dies folgt dem ersten Topic von vor ein paar Wochen. allgemeine-fragen-f5/ein-unbekanntes-statistisches-model-erweitern-t11154.html

Ich habe also jetzt zwei Modelle um aus einer Menge von Prediktorvariablen ein Kriterium vorherzusagen.

Modell 1 ist eine Software, über die ich nichts weiß... außer was an Prediktorvariablen reingeschoben wird, und was als vorhergesagtes Kriterium dabei raus kommt.

Modell 2 ist (nach dem Topic oben), das geschätze Kriterium das aus Modell 1 geschätzt wurde und weitere Prediktorvariablen in einen Random Forrest gesteckt. Da weiß ich jetzt schon ein bisschen mehr über die interne Struktur des Modells. Sprich, ich kann mir ja den Random Forrest anschauen, zumindest theoretisch, ob es sinn macht sich x Entscheidungsbäume anzuschauen und dann auch noch nachzuvollziehen wie daraus der RF gebaut wird, ist auch nicht trivial. Aber wäre möglich.

Jetzt habe ich also eine Menge von Datensätzen mit
- Daten für Prädiktorvariablen X1.1, X1.2, X1.3... X1.n, ein Modell M1, ein Output/Kriterium von Modell 1 M1.Y und das gemessene "echte" Y
- Daten für Prädiktorvariablen X2.1 (wobei X2.1 M1.Y1 ist), X2.2, X2.3... X2.n, ein Modell M2, ein Output/Kriterium von Modell 1 M2.Y und das gemessene "echte" Y

Rein nach Bauchgefühl kann die Lösung mit dem Random Forrest M2 das echte Y deutlich besser vorhersagen als nur M1. Der RF gibt mir auch eine gewisse Abschätzung welchen Einfluss die verschiedenen Variablen X2.2, X2.3, ... X2.n spielen und umgeht dabei auch das Problem das mit Sicherheit nicht alle Zusammenhänge linear sind. Soweit so gut.

Jetzt soll ich abschließend eine überzeugende Bewertung abgeben welches Modell besser ist. Und idealerweise auch eine Einschätzung inwiefern besser.

Ein reiner signifkanter Unterschied ist da wenig überzeugend. Deshalb wurde mir vorgeschlagen mir den Bayes Faktor anzusehen, da man da über die Kategorisierung von Jeffreys eine "sprechende" Aussage bekommt, z.B. K von 10^1 bis 10^3/2 als "Strong Evidenz" M2 wäre besser als M1.

Also hab ich mich mit viel Eifer in Bayes Statistik geworfen und stelle fest, das es da nicht klickt. Ich verstehe recht viel, aber komme nicht dahinter wie ich jetzt praktisch (oder auch theoretisch) diesen Modellvergleich anstelle. Irgendwie gehen alle Beispiele und Lehrbücher immer davon aus, das die Modelle auch Bayes modelliert werden und dann man ja ganz einfach z.B. eine Baysche Regression macht und schrittweise Variablen hinzufügt und sich dann die Veränderung des Bayes Faktor ansieht. Dann kann man schnell sagen welches der verschiedene Modelle "besser" und "um wieviel besser" ist.

Wenn ich jetzt aber schon die Modell fertig habe und somit eigentlich nur die Menge der M1.Ys, M2.Ys und der echten Ys habe, plus halbwegs vernünftige Verteilungen annehmen kann.. dann komm ich nicht weiter was ich jetzt eigentlich machen soll.

Im worst case, kann ich natürlich noch einmal die Methode für den Vergleich ändern und sagen: Nee, ich mach das jetzt doch anders, mit klassischen Methoden. Aber ich hoffe, das evtl ein kleiner Tip und Stups in die richtige Richtung reicht um es doch per Bayes Statistik um zu setzen.

Vielen Dank,
fassy
fassy
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Di 24. Sep 2019, 10:08
Danke gegeben: 5
Danke bekommen: 0 mal in 0 Post

Re: Bayes Faktor für den Modellvergleich

Beitragvon bele » Mi 30. Okt 2019, 14:03

Hallo fassy,

zunächst die schlechte, dann die gute Nachricht. Bayes Statistik ist in diesem Forum ein sehr, sehr seltenes Thema und es hat sich bislang keiner hervorgetan in dem er zeigt, dass er da wirklich sicher unterwegs ist. Vielleicht irre ich mich, aber ich befürchte, dass die Beratungsqualität dieses Forums ()derzeit noch?) massiv nachlässt, sobald es um Bayes-Statistik geht. Es würde mich freuen, wenn ich hier irren sollte.

Dementsprechend weniger selbstbewusst als sonst schreibe ich folgendes: Im Grunde genommen willst Du zeigen, dass die Residuen mit dem einen Modell kleiner sind als mit dem anderen Modell. Letztlich eine Aufgabe für einen t-Test für verbundene Stichproben. Bayes-Faktor für t-Test für verbundene Stichproben findet Du im R package BayesFactor in der Funktion ttestBF() implementiert. Eine Beschreibung der Funktion und einen Link zur Publikation des dahinter stehenden Modells findest Du hier: https://richarddmorey.github.io/BayesFactor/#onesample
einen online Calculator der sich dieses packages bedient findest Du hier: http://pcl.missouri.edu/bf-one-sample

Was es mit diesem scaling factor r auf sich hat, weiß ich noch nicht:
The default priors have changed from 1 to sqrt(2)/2. The factor of sqrt(2) is to be consistent with Morey
et al. (2011) and Rouder et al. (2012), and the factor of 1/2 in both is to better scale the expected
effect sizes; the previous scaling put more weight on larger effect sizes. To obtain the same Bayes
factors as Rouder et al. (2009), change the prior scale to 1.

Da solltest Du wahrscheinlich die zugehörige Publikation lesen, bevor Du sowas benutzt.(Bayes Statstik nutzen heißt halt auch, sich mit Prior-Verteilungen herumschlagen zu müssen´.)

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5769
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1353 mal in 1340 Posts

folgende User möchten sich bei bele bedanken:
fassy

Re: Bayes Faktor für den Modellvergleich

Beitragvon fassy » Mi 30. Okt 2019, 18:06

Hallo Bernhard,

danke, das hilft schon mal weiter!

Bei dem BayesFaktor package war ich auch schon angekommen und hatte auch das Paper von Rouder, Speckman, Sun, Morey, and Iverson (2009) (und verwandte Paper) angesehen da dies auf der Tutorial Seite (https://bayesfactor.blogspot.com/2014/0 ... art-1.html) schon empfohlen wurde. Ich verstehe durchaus auch wie ich mit dem Prior umgehen kann/muss und warum sie die scaling factors für die den default prior im package so gewählt haben. Kann man ja letzlich auch ändern wenn man will (und kann).

Der entscheidende Punkt an dem ich immer gehakt habe war, ist ein t-Test dass was ich will...? Da ich ja drei Daten hatte, also M1.Y, M2.Y und Y... bin nicht auf die Idee gekommen die Residuen für M1.Y gegen Y und M2.Y gegen Y zu nehmen. Also muss ich für den t-Test die Residuen von M1 gegen die Residuen von M2 machen. Nur auf die Bayes'sche Art. Ich hab mich so an Bayes Statistik verbissen, das ich auf die naheliegende grundlegenden Überlegungen nicht gekommen bin. Das macht Sinn... schon fast ein wenig peinlich :D

Wenn man sich im R package halt die Möglichkeiten Modelle zu vergleichen ansieht, gibt es da x Möglichkeiten... die alle irgendwie nicht zutreffen. Ich habe mich auf Modellvergleich festgefressen, und da landet man immer bei sowas wie schrittweisen Regressionen oder ähnliches.

Vielen Dank!
fassy

EDIT:// Hmmm, da müsste ich aber wohl die quadrierte Residuen als (Y - M1.Y)^2 und (Y - M2.Y)^2 als Datenserie für den t-Test nehmen, oder?

EDIT2:// über das Buch von Kruschke bin ich jetzt noch auf https://cran.r-project.org/web/packages ... s/BEST.pdf gestoßen. Aber die Frage bleibt letzlich gleich. Welche Daten vergleiche ich? Weil ich muss mir ja die Abweichungen der Vorhersage von den echten Werten ansehen nicht die echten Werte oder die vorhergesagten Werte.
fassy
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Di 24. Sep 2019, 10:08
Danke gegeben: 5
Danke bekommen: 0 mal in 0 Post

Re: Bayes Faktor für den Modellvergleich

Beitragvon bele » Mi 30. Okt 2019, 20:17

Hallo fassy,

der Best ist für unverbundene Stichproben und passt deshalb nicht.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5769
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1353 mal in 1340 Posts

folgende User möchten sich bei bele bedanken:
fassy

Re: Bayes Faktor für den Modellvergleich

Beitragvon fassy » Do 31. Okt 2019, 19:57

Hi Bernhard,

ah, das hatte ich übersehen. Dankeschön! Ich spiele mal ein wenig mit ttestBF herum und schaue was dabei rum kommt.

Danke,
fassy
fassy
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Di 24. Sep 2019, 10:08
Danke gegeben: 5
Danke bekommen: 0 mal in 0 Post


Zurück zu Allgemeine Fragen

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 2 Gäste