Ich habe ein Problem mit dem Schätzparameter für Zipf. Meine Situation ist folgende:
Ich habe einen Beispielsatz (gemessen aus einem Experiment, das Aufrufe generiert, die einer Zipf-Verteilung folgen sollten). Ich muss zeigen, dass dieser Generator wirklich Anrufe mit zipf-Verteilung generiert. Ich habe diese Fragen und Antworten bereits gelesen. Wie berechnet man den Zipf-Gesetzkoeffizienten aus einer Reihe von Spitzenfrequenzen? aber ich erreiche schlechte Ergebnisse, weil ich eine abgeschnittene Verteilung verwende. Wenn ich zum Beispiel den Wert "s" für den Generierungsprozess auf "0,9" setze und versuche, den Wert "s" zu schätzen, wie in den gemeldeten Fragen und Antworten angegeben, erhalte ich "s" gleich 0,2. Ich denke, das liegt an der Tatsache, dass ich eine TRUNCATED-Distribution verwende (ich muss das zipf mit einem Kürzungspunkt begrenzen, es ist rechts abgeschnitten).
Wie kann ich Parameter mit einer abgeschnittenen zipf-Verteilung schätzen?
quelle
Antworten:
Update : 7. April 2011 Diese Antwort wird ziemlich lang und deckt mehrere Aspekte des vorliegenden Problems ab. Bisher habe ich mich jedoch geweigert, es in separate Antworten aufzuteilen.
Ich habe ganz unten eine Diskussion über die Leistung von Pearson's für dieses Beispiel hinzugefügt .χ2
Bruce M. Hill hat vielleicht das "wegweisende" Papier über die Schätzung in einem Zipf-ähnlichen Kontext verfasst. Mitte der 1970er Jahre schrieb er mehrere Artikel zu diesem Thema. Der "Hill Estimator" (wie er jetzt genannt wird) stützt sich jedoch im Wesentlichen auf die maximale Ordnungsstatistik der Stichprobe. Je nach Art der vorhandenen Kürzung kann dies zu Problemen führen.
Das Hauptpapier ist:
BM Hill, Ein einfacher allgemeiner Ansatz zur Schlussfolgerung über den Schwanz einer Verteilung , Ann. Stat. 1975.
Wenn Ihre Daten anfänglich wirklich Zipf sind und dann abgeschnitten werden, kann eine nette Entsprechung zwischen der Gradverteilung und dem Zipf-Diagramm zu Ihrem Vorteil genutzt werden.
Wenn wir dagegen das Zipf-Diagramm zeichnen , bei dem wir die Stichprobe vom größten zum kleinsten sortieren und dann die Werte gegen ihre Ränge zeichnen, erhalten wir einen anderen linearen Trend mit einer anderen Steigung. Die Pisten sind jedoch verwandt.
@csgillespie gab kürzlich einen von Mark Newman in Michigan mitverfassten Artikel zu diesem Thema. Er scheint viele ähnliche Artikel darüber zu veröffentlichen. Unten finden Sie eine weitere zusammen mit einigen anderen Referenzen, die von Interesse sein könnten. Newman macht statistisch gesehen manchmal nicht das Vernünftigste, seien Sie also vorsichtig.
MEJ Newman, Potenzgesetze, Pareto-Verteilungen und Zipf-Gesetz , Contemporary Physics 46, 2005, S. 323-351.
M. Mitzenmacher, Eine kurze Geschichte generativer Modelle für Potenzrecht und logarithmische Normalverteilungen , Internet Math. vol. 1, nein. 2, 2003, S. 226-251.
K. Knight, Eine einfache Modifikation des Hill-Schätzers mit Anwendungen auf Robustheit und Bias-Reduktion , 2010.
Nachtrag :
Das resultierende Diagramm ist
Aus praktischer Sicht sollte eine solche Handlung jedoch relativ überzeugend sein.
Wir berechnen auch eine zweite Statistik, die erstellt wird, indem zuerst die Anzahl in Bins der Größe 40 zusammengefasst wird, wie in Maurizios Tabelle gezeigt (der letzte Bin enthält nur die Summe von zwanzig separaten Ergebniswerten.
quelle
Das Papier
Clauset, A et al. , Potenzgesetzverteilungen in empirischen Daten . 2009
enthält eine sehr gute Beschreibung der Vorgehensweise beim Anpassen von Potenzgesetzmodellen. Die zugehörige Webseite enthält Codebeispiele. Leider gibt es keinen Code für abgeschnittene Distributionen, aber es kann Ihnen einen Zeiger geben.
Im Übrigen wird in dem Artikel die Tatsache erörtert, dass viele "Potenzgesetz-Datensätze" mit den Log-Normal- oder Exponentialverteilungen gleich gut (und in einigen Fällen besser) modelliert werden können!
quelle
Nach der detaillierten Antwort des Benutzerkardinals führte ich den Chi-Quadrat-Test für meine vermutete abgeschnittene Zipf-Verteilung durch. Die Ergebnisse des Chi-Quadrat-Tests sind in der folgenden Tabelle angegeben:
Wenn StartInterval und EndInterval beispielsweise den Anrufbereich darstellen und Observed die Anzahl der Anrufer ist, die 0 bis 19 Anrufe usw. generieren. Der Chi-Quadrat-Test ist gut, bis die letzten Spalten erreicht sind, und erhöht das Finale Berechnung, ansonsten war bis zu diesem Zeitpunkt der "partielle" Chi-Quadrat-Wert akzeptabel!
Bei anderen Tests ist das Ergebnis dasselbe, die letzte Spalte (oder die letzten 2 Spalten) erhöht immer den Endwert und ich weiß nicht warum und ich weiß nicht, ob (und wie) ein anderer Validierungstest verwendet wird.
PS: Der Vollständigkeit halber folge ich zur Berechnung der erwarteten Werte ( erwartet ) dem Vorschlag des Kardinals folgendermaßen:
wo X_i 's zu berechnen , sind:
x <- (1:n)^-S
die P_i s berechnenp <- x / sum(x)
die und schließlich E_i wird (Erwartete nr der Benutzer für jeden der Anrufe nr) , erhalten durchP_i * Total_Caller_Observed
und mit Freiheitsgrad = 13 lehnt die Chi-Quadrat-Güte immer die Hyphotese ab, dass der Probensatz der Zipf-Verteilung folgt, da die Teststatistik (in diesem Fall 64,14) größer ist als die in den Chi-Quadrat-Tabellen angegebene "Fehler". für die letzte Spalte. Das grafische Ergebnis wird hier angegeben:
Obwohl der Abschneidepunkt auf 500 eingestellt ist, ergibt sich ein Maximalwert von 294. Ich denke, dass die endgültige "Dispersion" die Ursache für das Scheitern des Chi-Quadrat-Tests ist.
AKTUALISIEREN!!
Ich versuche, den Chi-Quadrat-Test an einem mutmaßlichen Zipf-Datenmuster durchzuführen, das mit dem in der obigen Antwort angegebenen R-Code generiert wurde.
Das zugehörige Diagramm ist das folgende:
Die Chi-Quadrat-Testergebnisse sind in der folgenden Abbildung dargestellt:
und die Chi-Quadrat-Teststatistik (44,57) ist zu hoch für die Validierung mit dem gewählten Freiheitsgrad. Auch in diesem Fall ist die endgültige "Streuung" der Daten die Ursache für den hohen Chi-Quadrat-Wert. Aber es gibt ein Verfahren, um diese Zipf-Verteilung zu validieren (unabhängig von meinem "falschen" Generator möchte ich mich auf das R-Datenbeispiel konzentrieren) ???
quelle