Ich werde versuchen, das vorliegende Problem so allgemein wie möglich zu beschreiben. Ich modelliere Beobachtungen als kategoriale Verteilung mit einem Parameterwahrscheinlichkeitsvektor Theta.
Dann nehme ich an, dass der Parametervektor Theta einer Dirichlet-Vorverteilung mit den Parametern folgt .
Ist es dann möglich, auch eine Hyperpriorverteilung über die Parameter aufzuerlegen ? Muss es sich um eine multivariate Verteilung wie die kategoriale Verteilung und die Dirichlet-Verteilung handeln? Mir scheint, die Alphas sind immer positiv, also sollte ein Gamma-Hyperprior funktionieren.
Ich bin mir nicht sicher, ob jemand versucht hat, solche (möglicherweise) überparametrisierten Modelle anzupassen, aber es erscheint mir vernünftig zu denken, dass die Alphas nicht repariert werden sollten, sondern aus einer Gammaverteilung stammen sollten.
Bitte versuchen Sie, mir einige Referenzen und Einblicke zu geben, wie ich einen solchen Ansatz in der Praxis ausprobieren könnte.
quelle
Antworten:
In Fällen, in denen keine starken Erwartungen an spärliche oder dichte multinomiale Verteilungen bestehen, bietet die Platzierung eines Hyperprior über Ihrer Dirichlet-Verteilung Ihrem Modell zusätzliche Flexibilität bei der Auswahl.
Das zusätzliche Dirichlet dient lediglich dazu, eine Symmetrie zu vermeiden.
Ich habe auch gesehen, dass Leute nur den Gamma-Hyper-Prior für ein Dirichlet im Kontext von Hidden-Markov-Modellen mit multinomialen Emissionsverteilungen verwenden, aber ich kann anscheinend keine Referenz finden. Es scheint auch, dass ich auf ähnliche Hypers gestoßen bin, die in Themenmodellen verwendet werden.
quelle
Um eine Lösung für dieses Hyperprior-Problem zu demonstrieren, habe ich in PyMC3 ein hierarchisches Gamma-Dirichlet-Multinomial-Modell implementiert. Der Gamma-Prior für das Dirichlet wird in Ted Dunnings Blog-Post angegeben und abgetastet .
Das von mir implementierte Modell finden Sie in dieser Übersicht , wird aber auch im Folgenden beschrieben:
Dies ist ein Bayes'sches hierarchisches (Pooling-) Modell für Filmbewertungen. Jeder Film kann auf einer Skala von null bis fünf bewertet werden. Jeder Film wird mehrmals bewertet. Wir möchten eine geglättete Verteilung der Bewertungen für jeden Film finden.
Wir werden aus den Daten eine Top-Level-Vorverteilung (Hyperprior) für Filmbewertungen lernen. Jeder Film hat dann einen eigenen Prior, der durch diesen Top-Level-Prior geglättet wird. Eine andere Art, darüber nachzudenken, besteht darin, dass der Prior für Bewertungen für jeden Film auf die Verteilung auf Gruppenebene oder in Pools reduziert wird.
Wenn ein Film eine atypische Bewertungsverteilung aufweist, werden durch diesen Ansatz die Bewertungen auf etwas reduziert, das den Erwartungen besser entspricht. Darüber hinaus kann dieses zuvor erlernte Verfahren nützlich sein, um Filme mit wenigen Bewertungen zu booten, damit sie sinnvoll mit Filmen mit vielen Bewertungen verglichen werden können.
Das Modell ist wie folgt:
wo:
quelle
Dies ist eine direkte Bayes'sche Konjugat-Vormodellierung. Eine natürliche Erweiterung des Beta-Binomial-Modells. Eine gute Quelle dafür könnte aus dem Buch stammen . Und Posterior ist auch Dirichlet und daher liefert die Simulation von Dirichlet die notwendigen Zusammenfassungen
quelle