Strategie zur Bestimmung des geeigneten Modells für die Zähldaten

16

Welche Strategie eignet sich, um zu entscheiden, welches Modell mit Zähldaten verwendet werden soll? Ich habe Zähldaten, die ich als Mehrebenenmodell modellieren muss, und es wurde mir (auf dieser Site) empfohlen, dies am besten durch Bugs oder MCMCglmm zu tun. Ich versuche jedoch immer noch, etwas über Bayes-Statistiken zu lernen, und ich dachte, ich sollte zuerst versuchen, meine Daten als verallgemeinerte lineare Modelle anzupassen und die verschachtelte Struktur der Daten zu ignorieren (nur damit ich eine vage Vorstellung davon bekommen kann, was mich erwartet).

Ungefähr 70% der Daten sind 0 und das Verhältnis von Varianz zu Mittelwert ist 33. Die Daten sind also ziemlich überstreut.

Nachdem ich eine Reihe verschiedener Optionen ausprobiert habe (einschließlich Poisson, negatives Binomial, Quassi und Null-Inflations-Modell), sehe ich nur eine sehr geringe Konsistenz in den Ergebnissen (von allem, was wichtig ist, bis nichts, was wichtig ist).

Wie kann ich eine fundierte Entscheidung darüber treffen, welchen Modelltyp ich basierend auf der Inflation und der Überdispersion 0 wählen soll? Wie kann ich beispielsweise schließen, dass Quassi-Poisson besser geeignet ist als negatives Binom (oder umgekehrt), und wie kann ich wissen, dass die Verwendung von entweder den überschüssigen Nullen angemessen begegnet ist (oder nicht)? Wie bewerte ich in ähnlicher Weise, dass es keine Überdispersion mehr gibt, wenn ein Modell ohne Inflation verwendet wird? oder wie soll ich mich zwischen einem Null-Inflated-Poisson und einem Null-Inflated-Negativ-Binomial entscheiden?

George Michaelides
quelle

Antworten:

9

Sie können Zählungsmodelle immer anhand ihrer Vorhersagen vergleichen (vorzugsweise in einer Warteschleife). J. Scott Long diskutiert dies grafisch (Auftragen der vorhergesagten Werte gegen die tatsächlichen Werte). Sein Lehrbuch hier beschreibt im Detail , aber Sie können auch sehen 6.4 auf diesem Dokument .

Sie können Modelle mit AIC oder BIC vergleichen, und es gibt auch einen Test namens Voung-Test, mit dem ich nicht besonders vertraut bin, der aber keine aufgeblasenen mit nicht verschachtelten Modellen vergleichen kann. Hier ist ein Sas-Papier, das es kurz auf Seite 10 beschreibt , um Ihnen den Einstieg zu erleichtern. Es ist auch in der R- Buchung implementiert

B_Miner
quelle
Danke für den Hinweis. Ich werde auf jeden Fall versuchen, die Vorhersagen zu überprüfen, bevor ich mich für das Modell entscheide
George Michaelides
5

Ein paar Dinge zu dem, was B_Miner gesagt hat:

1) Sie haben geschrieben, dass die Modelle von "alles Bedeutende" bis "nichts Bedeutendes" variierten, aber dies ist kein guter Weg, um Modelle zu vergleichen. Schauen Sie sich stattdessen vorhergesagte Werte (wie von B_miner vorgeschlagen) und Effektgrößen an.

2) Wenn 70% der Daten 0 sind, kann ich mir nicht vorstellen, dass ein Modell ohne 0 Inflation angemessen ist.

3) Auch wenn Sie kein Bayesianer sein möchten, können Sie GLMMs in SAS (PROC GLIMMIX oder NLMIXED) und in R (verschiedene Pakete) verwenden. Das Ignorieren der verschachtelten Natur kann alles durcheinander bringen.

4) Die Entscheidung, welches Modell das beste ist, ist im Allgemeinen eine Kunst und keine Wissenschaft. Es gibt Statistiken zu verwenden, aber sie sind ein Leitfaden für die Beurteilung. Wenn ich mir nur ansehe, was Sie geschrieben haben, würde ich sagen, dass ein ZINB-Modell richtig aussieht

Peter Flom - Wiedereinsetzung von Monica
quelle
Die Absicht ist, dass ich irgendwann versuchen werde, dies mit Bayesian zu modellieren, aber ich habe versucht zu verstehen, wie ich eine Entscheidung treffen kann, bevor ich die Modelle anpasse. Wenn die Möglichkeit besteht, dass das Ignorieren der verschachtelten Natur der Daten die Dinge durcheinander bringt, werde ich sie zuerst mit GLMMs testen. Das einzige Paket für R, von dem ich weiß, dass es mehrstufiges ZINB kann, ist glmmADMB. Würden Sie andere Pakete empfehlen?
George Michaelides
4

Ich verstehe, dass Verteilungen mit Null-Inflation verwendet werden sollten, wenn es eine Begründung dafür gibt, dass bestimmte Elemente im Vergleich zu anderen Zählungen Zählungen von Nullen ergeben. Mit anderen Worten, eine Null-Inflations-Verteilung sollte verwendet werden, wenn die Nullen durch einen anderen Prozess erzeugt werden als derjenige, der die anderen Zählwerte erzeugt. Wenn Sie aufgrund der Überdispersion in Ihrer Stichprobe keine Gründe dafür haben, empfehle ich die Verwendung einer negativen Binomialverteilung, da diese die Häufigkeit von Nullen genau wiedergibt und die unbeobachtete Heterogenität darstellt, indem Sie diesen Parameter frei einschätzen. Wie oben erwähnt, ist das Buch von Scott Long eine großartige Referenz.

Matt
quelle
Danke für deine Antwort. In der Tat habe ich darüber nachgedacht, ob verschiedene Elemente die Nullen gegen jede andere Zählung erzeugen könnten, und ich denke tatsächlich, dass es einige meiner Variablen gibt, die nur die Nullen gegen jede andere Zählung erklären würden. Also sollte ich wahrscheinlich zuerst ZINB ausprobieren, um zu sehen, ob meine Variablen so funktionieren, wie ich es erwarten würde.
George Michaelides
3

absolut einverstanden mit dem, was Matt gesagt hat, zuerst muss man sich über den Hintergrund der Daten Gedanken machen ... Es macht keinen Sinn, ZI-Modelle zu passen, wenn es keine Zero-Trigger in der Population gibt! Der Vorteil von NB-Modellen besteht darin, dass sie eine unbeobachtete Heterogenität in einer gamma-verteilten Zufallsvariablen aufweisen können. Technisch: Die Hauptgründe für eine Überdispersion sind unbeeinträchtigte Heterogenität und Null-Inflation. Ich glaube nicht, dass deine Passform schlecht ist. Übrigens sollten Sie die Abweichung immer mit den Freiheitsgraden Ihres Modells vergleichen, um eine gute Passform zu erhalten. Wenn die Abweichung D höher als n- (p + 1) ist (dies ist df), sollten Sie ein besseres Modell suchen. Obwohl es meist keine besseren Modelle als ZINB gibt, um die Überdispersion loszuwerden.

Wenn Sie eine ZINB mit R anpassen möchten, rufen Sie das Paket ab psclund versuchen Sie, den Befehl zu verwenden zeroinfl(<model>, dist=negative). Weitere Informationen finden Sie ?zeroinflnach dem Laden des gewünschten Pakets!

MarkDollar
quelle