Jak dopasować rozkład dyskretny do zliczania danych?


17

Mam następujący histogram danych zliczania. I chciałbym dopasować do niego dyskretny rozkład. Nie jestem pewien, jak powinienem to zrobić.wprowadź opis zdjęcia tutaj

Czy powinienem najpierw nałożyć na histogram rozkład dyskretny, powiedzmy ujemny rozkład dwumianowy, aby uzyskać parametry rozkładu dyskretnego, a następnie uruchomić test Kołmogorowa – Smirnowa, aby sprawdzić wartości p?

Nie jestem pewien, czy ta metoda jest poprawna, czy nie.

Czy istnieje ogólna metoda rozwiązania takiego problemu?

To jest tabela częstotliwości danych zliczania. W moim problemie skupiam się tylko na niezerowych zliczeniach.

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

AKTUALIZACJA: Chciałbym zapytać: Użyłem funkcji fitdistr w R, aby uzyskać parametry do dopasowania danych.

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

Następnie rysuję funkcję masy prawdopodobieństwa rozkładu Poissona na górze histogramu. wprowadź opis zdjęcia tutaj

Wydaje się jednak, że rozkład Poissona nie modeluje danych zliczania. Czy jest coś, co mogę zrobić?


3
Ogólna metoda polega na wykorzystaniu maksymalnego prawdopodobieństwa, aby dopasować rozkład kandydata. To, co rozumiesz przez nałożenie rozkładu w celu uzyskania parametrów, nie jest jasne, ale jeśli masz na myśli zgadywanie wartości parametrów, dopóki nie uzyskasz dobrego dopasowania, jest to kiepska metoda. Kołmogorow-Smirnov nie jest tu przydatny. Potrzebujesz przyzwoitego oprogramowania, które daje pozytywne wyniki, więc musisz wskazać wybrane oprogramowanie, aby osoby korzystające z niego mogły spróbować ci pomóc. Histogram nie jest jasny, ale jeśli występują luki, prawdopodobnie rozkład nie będzie dobrze pasował.
Nick Cox

3
Chociaż stosowanie testu KS w ten sposób jest kiepską metodą (aw każdym razie test KS nie jest dla dyskretnych rozkładów), możliwe byłoby oszacowanie parametrów poprzez zminimalizowanie statystyki KS dla wszystkich możliwych wartości parametrów; ale jeśli idziesz w tę stronę (optymalizując trochę dobrego dopasowania), minimalnym chi-kwadratem byłoby bardziej typowe podejście. Jak sugeruje Nick Cox, ML byłoby oczywistą rzeczą, prawie na pewno bardziej wydajną, łatwiejszą do usunięcia standardowych błędów i łatwiejszą do zaakceptowania przez innych. (Istnieją inne możliwości, takie jak metoda momentów, ale najważniejsze jest ML).
Glen_b

Używam R. Kiedy mówisz, że szacujesz MLE, czy są jakieś algorytmy, które polecisz do tego zadania? A po znalezieniu ML, co powinienem zrobić dalej?
user1769197,

Zacznę tutaj ?MASS::fitdistr, ponieważ jest on już w twoim rozkładzie R (zobacz ostatni przykład na dole; zobacz rnegbin, aby uzyskać więcej informacji na temat tej parametryzacji dwumianu ujemnego). .... „ A po znalezieniu ML, co powinienem zrobić dalej? ” - w tym momencie masz oszacowania parametrów i standardowe błędy. Poza tym, co chcesz osiągnąć? - Nie mogę zgadywać.
Glen_b

Przyszło mi do głowy, że być może próbujesz zapytać „jak ocenić dopasowanie mojego modelu?”. Jeśli tak, czy możesz zaktualizować swoje pytanie, aby to odzwierciedlić?
Glen_b

Odpowiedzi:


17

Metody dopasowywania rozkładów dyskretnych

Istnieją trzy główne metody * stosowane w celu dopasowania (oszacowania parametrów) rozkładów dyskretnych.

1) Maksymalne prawdopodobieństwo

Znajduje wartości parametrów, które dają najlepszą szansę na dostarczenie próbki (biorąc pod uwagę inne założenia, takie jak niezależność, stałe parametry itp.)

2) Metoda momentów

Znajduje wartości parametrów, które sprawiają, że kilka pierwszych momentów zapełniania pasuje do momentów próbnych. Często jest to dość łatwe, aw wielu przypadkach daje dość rozsądne estymatory. Czasami jest również używany do dostarczania wartości początkowych do procedur ML.

3) Minimalny chi-kwadrat

Minimalizuje to dobro statystyki dopasowania chi-kwadrat w porównaniu z rozkładem dyskretnym, chociaż czasami przy większych zestawach danych kategorie końcowe mogą być łączone dla wygody. Często działa dość dobrze, a nawet prawdopodobnie ma pewne zalety w stosunku do ML w określonych sytuacjach, ale generalnie należy iterować do zbieżności, w którym to przypadku większość ludzi woli ML.

Dwie pierwsze metody są również stosowane do ciągłych dystrybucji; trzeci nie jest zwykle używany w takim przypadku.

Nie są to w żadnym wypadku wyczerpująca lista, a oszacowanie parametrów byłoby możliwe na przykład poprzez zminimalizowanie statystyki KS - a nawet (jeśli uwzględnisz dyskrecję), aby uzyskać z niej wspólny region współbrzmienia , gdybyś był bardzo skłonny. Ponieważ pracujesz w R, oszacowanie ML jest dość łatwe do osiągnięcia dla ujemnego dwumianu. Jeśli twoja próbka była w x, jest to tak proste, jak 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)

Są to oszacowania parametrów i ich (asymptotyczne) błędy standardowe.

W przypadku rozkładu Poissona zarówno MLE, jak i MoM szacują parametr Poissona na średniej próbki.

Jeśli chcesz zobaczyć przykłady, powinieneś opublikować kilka faktycznych danych. Zwróć uwagę, że histogram został wykonany z wybranymi pojemnikami, dzięki czemu kategorie 0 i 1 zostały połączone, a my nie mamy surowej liczby.

Tak blisko, jak mogę się domyślić, twoje dane są z grubsza następujące:

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

Ale duże liczby będą niepewne (zależy to w dużej mierze od tego, jak dokładnie niskie liczby są reprezentowane przez liczbę pikseli ich wysokości słupków) i może to być pewna wielokrotność tych liczb, jak dwukrotność tych liczb (liczby surowe wpływają na standardowe błędy, więc ważne jest, czy dotyczą one tych wartości, czy dwa razy większych)

Połączenie pierwszych dwóch grup sprawia, że ​​jest to trochę niewygodne (jest to możliwe, ale mniej proste, jeśli połączysz niektóre kategorie. W tych pierwszych dwóch grupach jest dużo informacji, więc lepiej nie pozwolić, aby domyślny histogram je zbił ).


* Oczywiście możliwe są inne metody dopasowania rozkładów dyskretnych (można dopasować kwantyle lub zminimalizować na przykład inne statystyki dopasowania). Te, o których wspominam, wydają się najczęstsze.


+1, fajna informacja. Właśnie z ciekawości, dlaczego często używasz 1)zamiast numerowania znaczników obsługiwanego przez CV (tj. - 1.co prowadzi do wcięcia)?
Gung - Przywróć Monikę

1
@gung Przeważnie nie myślę o tym - wolę, aby moje listy wyglądały tak, jak je piszę; ale kiedy o tym myślę, stwierdzam, że edytowanie liczb przez Markdown wpisuję do tego, co według nich powinno być bardzo denerwujące (jeśli wpisałem „36.”, naprawdę nie miałem na myśli „1”) ... więc kiedy przyszło mi do głowy użyć „1” zamiast „1)” często kończę na „1 \”. wyraźnie powstrzymując go od rozpoznania go i zrobienia rzeczy, których nie zamierzałem. Byłem tak zestrojony z tym zachowaniem od 5 lat redditu, że nawet o tym nie myślę - skończyłbym automatycznie ingerowaniem w to siłą nawyku.
Glen_b

1
@gung Jeśli wcięcie byłoby znacznie mniejsze, prawdopodobnie byłbym skłonny pogodzić się z ryzykiem zmiany numeracji i skorzystać z niego. W tej chwili zwykle widzę, że to rozprasza. Ale w tym konkretnym przypadku chciałem, aby wyglądały bardziej jak podtytuły, więc prawdopodobnie unikałbym tego, nawet gdyby nie zniechęciło mnie to zachowanie. (Z drugiej strony, przy okazji, gdy inni ludzie decydują się na edycję moich list, aby zrobić wcięcie, generalnie zostawiam je, aby zadowolić siebie. Jeśli chcą, aby wyglądało to w określony sposób, mogą, dopóki nie nie zmieniaj znaczenia.)
Glen_b

Spróbuję się powstrzymać ;-).
Gung - Przywróć Monikę

2

W edycji podałeś trochę danych i dodałeś nowe pytanie:

„To jest tabela częstotliwości danych zliczania. W moim problemie skupiam się tylko na niezerowych zliczeniach.

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

Czy ktoś może mi podać przykład, jak przeprowadziłbyś tutaj test dopasowania do kwadratu chi? ”

Prowadzi to do dalszych komentarzy:

  1. Posiadanie zer, ale chęć ich zignorowania może mieć sens, ale generalnie ludzie statystyczni i przedmiotowi chcieliby znaleźć dobry powód.

  2. Jeśli zdecydujesz się zignorować zera, stawiasz się na trudnym terytorium, ponieważ nie możesz po prostu odpalić procedur dla np. Poissona lub dwumianu ujemnego, jeśli pominiesz zera. Cóż, możesz, ale odpowiedzi byłyby błędne. Potrzebne są funkcje lub polecenia specjalnego przeznaczenia do dystrybucji, takie jak dwucyfrowy zero Poissona lub zero ujemny dwumianowy. To trudne rzeczy i wymaga dedykowanej lektury, aby jasno określić, co robisz.

  3. Pytanie o wykonanie testu chi-kwadrat sugeruje mi, że tak naprawdę nie zrozumiałeś tego, co powiedziałem bardzo krótko, a @Glen_b powiedział o wiele bardziej szczegółowo (i, moim zdaniem, bardzo wyraźnie). Podział na dwie części:

    • Nie może być testu chi-kwadrat bez oczekiwanych częstotliwości i nie może być żadnych oczekiwanych częstotliwości bez oszacowań parametrów. Być może najbardziej znasz procedury testowe chi-kwadrat, w których testowana jest niezależność wierszy i kolumn w tabeli dwukierunkowej. Chociaż jest to test chi-kwadrat najczęściej spotykany na kursach wprowadzających, w rzeczywistości jest on bardzo niezwykły wśród testów chi-kwadrat ogólnie, ponieważ zwykłe oprogramowanie w rzeczywistości dokonuje oszacowania parametru dla Ciebie, a tym samym uzyskuje oczekiwane częstotliwości. Poza tym w najbardziej skomplikowanych problemach, takich jak twój, musisz najpierw uzyskać oszacowania parametrów.

    • Test chi-kwadrat nie jest zły, ale jeśli oszacujesz parametry według maksymalnego prawdopodobieństwa, nie ma to znaczenia, ponieważ procedura dopasowania daje oszacowania i standardowe błędy oraz umożliwia przeprowadzenie testów po ich zakończeniu. @Glen_b podał przykład już w swojej odpowiedzi.

Problemem ubocznym jest to, że łatwiej byłoby dostroić histogramy, aby uszanować dyskrecję zmiennej i pokazać prawdopodobieństwo, a nie gęstość. Widoczne luki są tylko artefaktami domyślnego wyboru bin, nie szanującymi dyskrecji zmiennej.

AKTUALIZACJA: Dodatkowe pytanie dotyczące testu chi-kwadrat zostało teraz usunięte. W tej chwili pozwalam # 3 stanąć powyżej, na wypadek, gdyby ktoś poszedł tą samą drogą, chcąc testu chi-kwadrat.


Muszę zignorować zera, ponieważ próbuję modelować aktywne liczby. Liczba = 0 jest określana jako liczba nieaktywna.
user1769197,

To merytoryczny wybór. Zauważ, że w wielu polach istnieją tak zwane dwuczęściowe modele, w których modelujesz (według twoich słów) aktywne kontra nieaktywne, a następnie jak aktywne.
Nick Cox

Próbowałem dostosować histogramy, wykonując polecenie „plot (table (abc), type =„ h ”)”. Ale nie jestem pewien, jak mogę uzyskać prawdopodobieństwo
użytkownik1769197

Nie używam R, ale możesz uzyskać porady na ten temat. Być może będziesz musiał zapytać osobno.
Nick Cox
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.