Wie passt man eine diskrete Verteilung an, um Daten zu zählen?

17

Ich habe das folgende Histogramm der Zähldaten. Und ich würde gerne eine diskrete Verteilung hinzufügen. Ich bin mir nicht sicher, wie ich das anstellen soll.Bildbeschreibung hier eingeben

Soll ich dem Histogramm zuerst eine diskrete Verteilung überlagern, z. B. eine negative Binomialverteilung, damit ich die Parameter der diskreten Verteilung erhalte, und dann einen Kolmogorov-Smirnov-Test ausführen, um die p-Werte zu überprüfen?

Ich bin nicht sicher, ob diese Methode korrekt ist oder nicht.

Gibt es eine allgemeine Methode, um ein solches Problem anzugehen?

Dies ist eine Häufigkeitstabelle der Zähldaten. In meinem Problem konzentriere ich mich nur auf Zählungen ungleich Null.

  Counts:     1    2    3    4    5    6    7    9   10 
 Frequency: 3875 2454  921  192   37   11    1    1    2 

UPDATE: Ich möchte fragen: Ich habe die fitdistr-Funktion in R verwendet, um die Parameter zum Anpassen der Daten zu erhalten.

fitdistr(abc[abc != 0], "Poisson")
     lambda  
  1.68147852 
 (0.01497921)

Dann zeichne ich die Wahrscheinlichkeitsmassenfunktion der Poisson-Verteilung über dem Histogramm. Bildbeschreibung hier eingeben

Es scheint jedoch, dass die Poisson-Verteilung die Zähldaten nicht modellieren kann. Kann ich irgendetwas tun?

user1769197
quelle
3
Eine allgemeine Methode besteht darin, die maximale Wahrscheinlichkeit zu verwenden, um eine Kandidatenverteilung anzupassen. Was Sie unter Überlagern einer Verteilung verstehen, um die Parameter zu erhalten, ist nicht klar. Wenn Sie jedoch Parameterwerte erraten, bis Sie eine gute Anpassung erhalten, ist dies eine miese Methode. Kolmogorov-Smirnov ist hier nicht nützlich. Sie benötigen eine anständige Software, die Ihnen schlussfolgernde Ergebnisse liefert. Geben Sie daher Ihre bevorzugte Software an, damit die Benutzer, die diese Software verwenden, versuchen können, Ihnen zu helfen. Ihr Histogramm ist nicht klar, aber wenn es Lücken gibt, wird wahrscheinlich keine Verteilung gut passen.
Nick Cox
3
Während die Verwendung eines KS- Tests auf diese Weise eine miese Methode ist (und in jedem Fall ist der KS-Test nicht für diskrete Verteilungen bestimmt), wäre es möglich, Parameter zu schätzen, indem die KS-Statistik über alle möglichen Parameterwerte minimiert wird. Wenn Sie diesen Weg einschlagen (Optimierung der Anpassungsgüte), ist das Chi-Quadrat-Minimum der typischere Ansatz. Wie Nick Cox vorschlägt, wäre ML die naheliegende Sache, mit ziemlicher Sicherheit effizienter, einfacher, Standardfehler zu beseitigen und von anderen leichter akzeptiert. (Es gibt andere Möglichkeiten, wie die Methode der Momente, aber ML ist die Hauptsache.)
Glen_b - Monica
Ich verwende R. Wenn Sie MLE schätzen, gibt es Algorithmen, die Sie für den Job empfehlen? Und was soll ich als nächstes tun, nachdem ich die ML gefunden habe?
user1769197
Ich würde hier beginnen ?MASS::fitdistr, da es sich bereits in Ihrer R-Verteilung befindet (siehe das letzte Beispiel unten; siehe rnegbin für weitere Informationen zu dieser Parametrisierung des negativen Binomials). .... " Und nachdem Sie die ML gefunden haben, was soll ich als nächstes tun? " - Nun, an diesem Punkt haben Sie Parameterschätzungen und Standardfehler. Was möchten Sie darüber hinaus erreichen? - Ich kann es nicht erraten.
Glen_b -Reinstate Monica
Mir kommt der Gedanke, dass Sie vielleicht gefragt haben, wie ich die Passform meines Modells einschätze. Wenn dies der Fall ist, können Sie Ihre Frage aktualisieren, um dies widerzuspiegeln?
Glen_b

Antworten:

17

Methoden zur Anpassung diskreter Verteilungen

Es gibt drei Hauptmethoden *, die verwendet werden, um diskrete Verteilungen anzupassen (deren Parameter zu schätzen).

1) Maximale Wahrscheinlichkeit

Hiermit werden die Parameterwerte ermittelt, die die beste Chance bieten, Ihre Probe zu liefern (unter Berücksichtigung der anderen Annahmen wie Unabhängigkeit, konstante Parameter usw.).

2) Methode der Momente

Dadurch werden die Parameterwerte ermittelt, die bewirken, dass die ersten Momente der Grundgesamtheit mit Ihren Beispielmomenten übereinstimmen. Es ist oft ziemlich einfach und liefert in vielen Fällen ziemlich vernünftige Schätzer. Es wird auch manchmal verwendet, um ML-Routinen mit Startwerten zu versorgen.

3) Minimales Chi-Quadrat

Dies minimiert die Chi-Quadrat-Güte der Anpassungsstatistik über die diskrete Verteilung, obwohl manchmal bei größeren Datensätzen die Endkategorien zur Vereinfachung kombiniert werden können. Es funktioniert oft ziemlich gut und hat in bestimmten Situationen sogar einige Vorteile gegenüber ML, aber im Allgemeinen muss es zur Konvergenz iteriert werden. In diesem Fall bevorzugen die meisten Menschen ML.

Die ersten beiden Methoden werden auch für kontinuierliche Verteilungen verwendet. der dritte wird in diesem Fall normalerweise nicht verwendet.

Diese enthalten keinesfalls eine vollständige Liste, und es wäre durchaus möglich, Parameter zu schätzen, indem Sie beispielsweise die KS-Statistik minimieren - und selbst (wenn Sie die Diskriminanz korrigieren), wenn Sie dies tun, eine gemeinsame Konsonanzregion daraus zu ziehen so geneigt. Da Sie in R arbeiten, ist die ML-Schätzung für das negative Binom recht einfach zu erreichen. Wenn Ihre Probe in war x, ist es so einfach wie library(MASS);fitdistr (x,"negative binomial"):

> library(MASS) 
> x <- rnegbin(100,7,3)
> fitdistr (x,"negative binomial")
     size         mu    
  3.6200839   6.3701156 
 (0.8033929) (0.4192836)

Dies sind die Parameterschätzungen und ihre (asymptotischen) Standardfehler.

Im Fall der Poisson-Verteilung schätzen sowohl MLE als auch MoM den Poisson-Parameter im Stichprobenmittel.

Wenn Sie Beispiele sehen möchten, sollten Sie einige aktuelle Zahlen veröffentlichen. Beachten Sie, dass Ihr Histogramm mit Behältern erstellt wurde, die so ausgewählt wurden, dass die Kategorien 0 und 1 kombiniert werden und wir nicht die Rohwerte haben.

Soweit ich das beurteilen kann, lauten Ihre Daten ungefähr wie folgt:

    Count:  0&1   2   3   4   5   6  >6    
Frequency:  311 197  74  15   3   1   0

Die großen Zahlen sind jedoch ungewiss (dies hängt stark davon ab, wie genau die niedrigen Zählwerte durch die Pixelzahlen ihrer Balkenhöhen dargestellt werden), und es kann sich um ein Vielfaches dieser Zahlen handeln, etwa das Doppelte dieser Zahlen (die rohen Zählwerte wirken sich aus) die Standardfehler, also ist es wichtig, ob sie über diese Werte oder doppelt so groß sind)

Das Kombinieren der ersten beiden Gruppen ist etwas umständlich (dies ist möglich, aber weniger einfach, wenn Sie einige Kategorien kombinieren. In diesen ersten beiden Gruppen befinden sich viele Informationen. Lassen Sie sie daher am besten nicht vom Standardhistogramm zusammenfassen ).


* Andere Methoden zum Anpassen diskreter Verteilungen sind natürlich möglich (man könnte beispielsweise Quantile abgleichen oder andere Anpassungsstatistiken minimieren). Diejenigen, die ich erwähne, scheinen die häufigsten zu sein.

Glen_b - Setzen Sie Monica wieder ein
quelle
+1, nette Infos. Warum verwenden Sie aus Neugier häufig 1)anstelle der von CV unterstützten Markup-Nummerierung (dh -, 1.was zu Einrückungen führt)?
gung - Wiedereinsetzung von Monica
1
@gung Meistens denke ich nicht darüber nach - ich bevorzuge, dass meine Listen so aussehen, wie ich sie schreibe. Aber wenn ich darüber nachdenke, finde ich die Bearbeitung der von mir eingegebenen Zahlen durch markdown sehr ärgerlich (wenn ich "36" eingetippt habe, habe ich wirklich nicht "1" gemeint) ... also wann es fällt mir ein, "1" zu verwenden. anstatt "1)" tippe ich oft "1 \". explizit zu verhindern, dass es es erkennt und Dinge tut, die ich nicht vorhatte. Ich habe mich nach 5 Jahren so auf dieses Verhalten eingestellt, dass ich gar nicht daran denke - ich würde mich aus Gewohnheit automatisch einmischen.
Glen_b
1
@gung Wenn die Einkerbung viel kleiner wäre, wäre ich wahrscheinlich geneigt, die Gefahr der Umnummerierung in Kauf zu nehmen und sie zu nutzen. So wie es aussieht, lenkt es mich normalerweise ab, wenn ich es sehe. Aber in diesem speziellen Fall wollte ich, dass sie eher wie Unterüberschriften aussehen, also hätte ich es wahrscheinlich vermieden, selbst wenn mich das Verhalten nicht abgeschreckt hätte. (Auf der anderen Seite überlasse ich es anderen Leuten, meine Listen zu bearbeiten, um sie einzurücken. Wenn sie wollen, dass es so aussieht, können sie es, solange es nicht anders ist ändere nicht die Bedeutung.)
Glen_b
Ich werde versuchen, mich zurückzuhalten ;-).
gung - Wiedereinsetzung von Monica
2

In einer Bearbeitung gaben Sie einige Daten an und fügten eine neue Frage hinzu:

"Dies ist eine Häufigkeitstabelle der Zähldaten. In meinem Problem konzentriere ich mich nur auf Nicht-Null-Zählungen.

   Counts:     1    2    3    4    5    6    7    9   10 
Frequency:  3875 2454  921  192   37   11    1    1    2 

Kann mir jemand ein Beispiel geben, wie Sie hier den Chi-Quadrat-Fit-Test durchführen würden? "

Dies führt zu weiteren Kommentaren:

  1. Nullen zu haben, sie aber ignorieren zu wollen, kann sinnvoll sein, aber im Allgemeinen möchten statistische und sachliche Personen einen guten Grund dafür sehen.

  2. Wenn Sie sich dafür entscheiden, Nullen zu ignorieren, befinden Sie sich in einem schwierigen Umfeld, da Sie nicht einfach Routinen für z. B. Poisson oder negatives Binomial starten können, wenn Sie die Nullen weglassen. Nun, Sie können, aber die Antworten wären falsch. Sie benötigen spezielle Funktionen oder Befehle für Verteilungen, z. B. das nullverengte Poisson oder das nullverengte negative Binomial. Das ist eine Herausforderung und erfordert eine engagierte Lektüre, damit klar ist, was Sie tun.

  3. Die Frage, wie man einen Chi-Quadrat-Test durchführt, legt für mich nahe, dass Sie nicht wirklich verstanden haben, was ich sehr kurz gesagt habe, und dass @Glen_b viel ausführlicher gesagt hat (und meines Erachtens sehr deutlich). Das in zwei Teile teilen:

    • Es kann keinen Chi-Quadrat-Test ohne erwartete Frequenzen geben, und es kann keine erwarteten Frequenzen ohne Parameterschätzungen geben. Möglicherweise kennen Sie die Chi-Quadrat-Testroutinen am besten, mit denen die Unabhängigkeit von Zeilen und Spalten in einer Zwei-Wege-Tabelle getestet wird. Obwohl dies der in Einführungskursen am häufigsten verwendete Chi-Quadrat-Test ist, ist es unter Chi-Quadrat-Tests im Allgemeinen tatsächlich sehr ungewöhnlich, dass die übliche Software die Parameterschätzung für Sie durchführt und dadurch die erwarteten Frequenzen erhält. Darüber hinaus müssen Sie bei den meisten komplizierteren Problemen wie dem Ihren zuerst die Parameterschätzungen abrufen.

    • Ein Chi-Quadrat-Test ist nicht falsch, aber wenn Sie die Parameter mit maximaler Wahrscheinlichkeit schätzen, ist dies irrelevant, da die Anpassungsroutine Schätzungen und Standardfehler liefert und Tests nach sich zieht. @ Glen_b gab bereits in seiner Antwort ein Beispiel.

Ein Nebeneffekt ist, dass es klarer wäre, Ihre Histogramme zu optimieren, um die Diskriminanz der Variablen zu berücksichtigen und Wahrscheinlichkeiten und nicht Dichten anzuzeigen. Die offensichtlichen Lücken sind nur Artefakte der Standardfachauswahl, die die Diskriminanz der Variablen nicht berücksichtigen.

UPDATE: Die Zusatzfrage zu einem Chi-Quadrat-Test wurde nun gelöscht. Im Moment lasse ich # 3 oben stehen, für den Fall, dass jemand anderes den gleichen Weg beschreitet, einen Chi-Quadrat-Test zu wollen.

Nick Cox
quelle
Ich muss die Nullen ignorieren, weil ich versuche, aktive Zählungen zu modellieren. Counts = 0 wird als inaktive Counts bezeichnet.
user1769197
Das ist eine inhaltliche Entscheidung. Beachten Sie, dass es in vielen Bereichen sogenannte zweiteilige Modelle gibt, in denen Sie (in Ihren Begriffen) aktiv oder inaktiv modellieren und dann, wie aktiv.
Nick Cox
Ich habe versucht, die Histogramme mit "plot (table (abc), type =" h ")" zu optimieren. Ich bin mir jedoch nicht sicher, wie ich es dazu bringen kann, Wahrscheinlichkeiten
anzuzeigen
Ich benutze kein R, aber Sie können sich dazu beraten lassen. Möglicherweise müssen Sie separat fragen.
Nick Cox