Mam problem z parametrem oszacowania dla Zipf. Moja sytuacja jest następująca:
Mam zestaw próbek (mierzony na podstawie eksperymentu, który generuje połączenia, które powinny być zgodne z rozkładem Zipf). Muszę wykazać, że ten generator naprawdę generuje połączenia z dystrybucją zipf. Przeczytałem już to pytanie. Jak obliczyć współczynnik prawa Zipfa z zestawu najwyższych częstotliwości? ale osiągam złe wyniki, ponieważ używam skróconej dystrybucji. Na przykład, jeśli ustawię wartość „s” na „0,9” w procesie generowania, to jeśli spróbuję oszacować wartość „s”, jak napisano w zgłoszonych pytaniach i odpowiedziach, otrzymam „s” równe 0,2 ca. Myślę, że wynika to z faktu, że używam dystrybucji TRUNCATED (muszę ograniczyć zipf z punktem obcięcia, jest on skrócony w prawo).
Jak mogę oszacować parametry przy obciętym rozkładzie zipf?
źródło
Odpowiedzi:
Aktualizacja : 7 kwietnia 2011 r. Ta odpowiedź jest dość długa i obejmuje wiele aspektów aktualnego problemu. Jednak jak dotąd opierałem się, dzieląc go na osobne odpowiedzi.
Na samym dole dodałem dyskusję na temat wydajności Pearsona dla tego przykładu.χ2)
Być może Bruce M. Hill jest autorem „przełomowego” artykułu na temat szacunków w kontekście podobnym do Zipf. W połowie lat 70. napisał na ten temat kilka artykułów. Jednak „estymator Hill” (jak się teraz nazywa) zasadniczo opiera się na statystykach maksymalnego rzędu próbki, a zatem, w zależności od rodzaju obcięcia, może sprawić ci kłopotów.
Główny artykuł to:
BM Hill, Proste ogólne podejście do wnioskowania na temat ogona dystrybucji , Ann. Stat. , 1975.
Jeśli twoje dane naprawdę są początkowo Zipf, a następnie są obcinane, to dobra korespondencja między rozkładem stopni a działką Zipf może zostać wykorzystana na Twoją korzyść.
W szczególności rozkład stopni jest po prostu rozkładem empirycznym liczby wyświetleń każdej odpowiedzi całkowitej,
Jeśli narysujemy to względem na wykresie log-log, otrzymamy trend liniowy o nachyleniu odpowiadającym współczynnikowi skalowania.ja
Z drugiej strony, jeśli wykreślimy wykres Zipf , w którym sortujemy próbkę od największej do najmniejszej, a następnie wykreślamy wartości względem ich rang, otrzymujemy inny trend liniowy z innym nachyleniem. Jednak stoki są powiązane.
@csgillespie opublikował jeden z ostatnich artykułów współautora Marka Newmana z Michigan na ten temat. Wydaje się, że publikuje wiele podobnych artykułów na ten temat. Poniżej znajduje się kolejna wraz z kilkoma innymi referencjami, które mogą być interesujące. Newman czasami nie robi statystycznie najbardziej sensownej rzeczy, więc bądź ostrożny.
MEJ Newman, Prawa potęgi, rozkłady Pareto i prawo Zipfa , Contemporary Physics 46, 2005, s. 323–351.
M. Mitzenmacher, Krótka historia modeli generatywnych dla prawa mocy i rozkładów logarytmicznych , matematyka internetowa. , vol. 1, nr 2, 2003, s. 226–251.
K. Knight, Prosta modyfikacja estymatora Hill'a z aplikacjami do odporności i redukcji uprzedzeń , 2010.
Dodatek :
Powstały wykres to
Jednak z praktycznego punktu widzenia taka fabuła powinna być względnie atrakcyjna.
Obliczymy również drugą statystykę utworzoną przez pierwsze binowanie liczb w pojemnikach o rozmiarze 40, jak pokazano w arkuszu kalkulacyjnym Maurizio (ostatni bin zawiera tylko sumę dwudziestu oddzielnych wartości wyników.
źródło
Papier
Clauset, A i in. , Power-law Distribution in Empirical Data . 2009
zawiera bardzo dobry opis sposobu dopasowania modeli prawa mocy. Powiązana strona internetowa zawiera próbki kodu. Niestety nie podaje kodu dla skróconych dystrybucji, ale może dać ci wskaźnik.
Nawiasem mówiąc, w artykule omówiono fakt, że wiele „zestawów danych dotyczących prawa mocy” można modelować równie dobrze (a w niektórych przypadkach lepiej) za pomocą rozkładu normalnego lub wykładniczego Log!
źródło
Po szczegółowej odpowiedzi kardynała użytkownika wykonałem test chi-kwadrat na moim przypuszczalnie obciętym rozkładzie zipf. Wyniki testu chi-kwadrat podano w poniższej tabeli:
Tam, gdzie StartInterval i EndInterval reprezentują na przykład zakres połączeń, a Obserwowana to liczba dzwoniących generujących od 0 do 19 połączeń itd. Test chi-kwadrat jest dobry do osiągnięcia ostatnich kolumn, zwiększają końcową obliczenia, w przeciwnym razie do tego momentu akceptowalna była „częściowa” wartość chi-kwadrat!
W przypadku innych testów wynik jest taki sam, ostatnia kolumna (lub ostatnie 2 kolumny) zawsze zwiększa wartość końcową i nie wiem, dlaczego i nie wiem, czy (i jak) użyć innego testu sprawdzania poprawności.
PS: dla kompletności, aby obliczyć oczekiwane wartości ( oczekiwane ), postępuję zgodnie z sugestią kardynała w ten sposób:
gdzie x_i „s są wykorzystywane do obliczenia:
x <- (1:n)^-S
The P_i ” s do obliczaniap <- x / sum(x)
i wreszcie E_i (Oczekiwany nr użytkowników dla każdego nr połączeń) otrzymuje sięP_i * Total_Caller_Observed
a przy stopniu swobody = 13 dobroć chi-kwadrat zawsze odrzuca hipotezę, że zestaw próbek jest zgodny z rozkładem Zipf, ponieważ statystyki testowe (w tym przypadku 64,14) są większe niż te podane w tabelach chi-kwadrat „demerit” dla ostatniej kolumny. Wynik graficzny przedstawiono tutaj:
chociaż punkt obcięcia jest ustawiony na 500, maksymalna uzyskana wartość to 294. Myślę, że ostateczna „dyspersja” jest przyczyną niepowodzenia testu chi-kwadrat.
AKTUALIZACJA!!
Próbuję wykonać test chi-kwadrat na przypuszczalnej próbce danych zipf wygenerowanej za pomocą kodu R podanego w odpowiedzi powyżej.
Powiązana fabuła jest następująca:
Wyniki testu chi-kwadrat przedstawiono na poniższym rysunku:
a statystyka testu chi-kwadrat (44,57) jest zbyt wysoka, aby można było przeprowadzić walidację przy wybranym stopniu wolności. Również w tym przypadku ostateczne „rozproszenie” danych jest przyczyną wysokiej wartości chi-kwadrat. Ale istnieje procedura sprawdzania poprawności dystrybucji zipf (niezależnie od mojego „złego” generatora, chcę skupić się na próbce danych R)?
źródło