Pochodzę z tego pytania, na wypadek, gdyby ktoś chciał pójść szlakiem.
Zasadniczo mam zestaw danych złożony z obiektów, w których do każdego obiektu przypisana jest dana liczba zmierzonych wartości (w tym przypadku dwóch):N
Potrzebuję sposobu na określenie prawdopodobieństwa przynależności nowego obiektu do dlatego doradzono mi w tym pytaniu, aby uzyskać gęstość prawdopodobieństwa za pomocą estymatora gęstości jądra, który moim zdaniem już mam.Ω F
Ponieważ moim celem jest uzyskanie prawdopodobieństwo tego nowego obiektu ( ) przynależności do tego zestawu danych 2D , powiedziano mi, aby zintegrować pdf f over " wartości wsparcia dla których gęstość jest mniejszy niż ten, który zaobserwowałeś . Przycisków "obserwuje" gęstość f oceniano w nowego obiektu , tj . Więc muszę rozwiązać równanie:f ( x p , y s )
Plik PDF mojego zestawu danych 2D (uzyskany przez moduł stats.gaussian_kde Pythona ) wygląda następująco:
gdzie czerwona kropka reprezentuje nowy obiekt wykreślony nad PDF mojego zestawu danych.
Pytanie brzmi: jak obliczyć powyższą całkę dla granic kiedy pdf wygląda tak?
Dodaj
Zrobiłem kilka testów, aby zobaczyć, jak dobrze działa metoda Monte Carlo, o której wspomniałem w jednym z komentarzy. Oto co mam:
Wydaje się, że wartości różnią się nieco bardziej dla obszarów o niższej gęstości, przy czym obie szerokości pasma pokazują mniej więcej taką samą zmienność. Największa zmiana w tabeli występuje dla punktu (x, y) = (2.4,1.5) porównując wartość próbki Silvermana 2500 vs 1000, co daje różnicę 0.0126
lub ~1.3%
. W moim przypadku byłoby to w dużej mierze do przyjęcia.
Edycja : Właśnie zauważyłem, że w 2 wymiarach reguła Scotta jest równoważna z regułą Silvermana zgodnie z podaną tutaj definicją.
Odpowiedzi:
Prostym sposobem jest zrasteryzowanie dziedziny integracji i obliczenie dyskretnego przybliżenia do całki.
Na kilka rzeczy należy uważać:
Pamiętaj, aby objąć więcej niż zakres punktów: musisz uwzględnić wszystkie lokalizacje, w których oszacowanie gęstości jądra będzie miało jakiekolwiek znaczące wartości. Oznacza to, że musisz zwiększyć zasięg punktów o trzy do czterech razy większą szerokość pasma jądra (dla jądra Gaussa).
Wynik różni się nieco w zależności od rozdzielczości rastra. Rozdzielczość musi stanowić niewielki ułamek szerokości pasma. Ponieważ czas obliczeń jest proporcjonalny do liczby komórek w rastrze, wykonanie serii obliczeń przy użyciu mniej dokładnych rozdzielczości nie zajmuje prawie więcej czasu: sprawdź, czy wyniki dla grubszych są zbieżne z wynikiem dla najlepsza rozdzielczość. Jeśli nie są, konieczne może być dokładniejsze rozwiązanie.
Oto ilustracja zestawu danych o 256 punktach:
Punkty są pokazane jako czarne kropki nałożone na dwa oszacowania gęstości jądra. Sześć dużych czerwonych punktów to „sondy”, przy których algorytm jest oceniany. Dokonano tego dla czterech szerokości pasma (domyślnie między 1,8 (pionowo) i 3 (poziomo), 1/2, 1 i 5 jednostek) przy rozdzielczości 1000 na 1000 komórek. Poniższa macierz wykresu rozrzutu pokazuje, jak silnie wyniki zależą od szerokości pasma dla tych sześciu punktów sondy, które pokrywają szeroki zakres gęstości:
Zmiana występuje z dwóch powodów. Oczywiście szacunki gęstości różnią się, wprowadzając jedną formę zmienności. Co ważniejsze, różnice w szacunkach gęstości mogą powodować duże różnice w dowolnym pojedynczym punkcie („sondzie”). Ta ostatnia odmiana jest największa wokół „obrzeży” skupisk punktów o średniej gęstości - dokładnie w tych lokalizacjach, w których to obliczenie prawdopodobnie będzie najczęściej używane.
Wskazuje to na konieczność zachowania znacznej ostrożności przy stosowaniu i interpretowaniu wyników tych obliczeń, ponieważ mogą one być tak wrażliwe na stosunkowo arbitralną decyzję (przepustowość do wykorzystania).
Kod R.
Algorytm ten jest zawarty w pół tuzina linii pierwszej funkcji
f
. Aby zilustrować jego użycie, reszta kodu generuje poprzednie liczby.źródło
Default
iHp5
przepustowości (zakładamH1
i mam naH5
myślih=1
ih=5
) CzyHp5
to jest wartośćh=1/2
? Jeśli tak to coDefault
?kde2d
użyciubandwidth.nrd
. Dla przykładowych danych jest to w kierunku poziomym i w kierunku pionowym, mniej więcej w połowie między wartościami i w teście. Zauważ, że te domyślne szerokości pasma są wystarczająco duże, aby umieścić znaczną część całkowitej gęstości znacznie poza zasięgiem samych punktów, dlatego ten zakres należy rozszerzyć niezależnie od tego, jakiego algorytmu integracji możesz użyć.kde
(i dlatego muszę rozszerzać granice integracji)? Biorąc pod uwagę, że mogę żyć z błędem<10%
wynikowej wartości całki, co sądzisz o stosowaniu reguły Scotta?Jeśli masz przyzwoitą liczbę obserwacji, być może nie będziesz musiał wcale dokonywać integracji. Powiedz, że twoim nowym punktem jest . Załóżmy, że masz estymator gęstości ; zsumuj liczbę obserwacji dla których i podziel przez wielkość próby. Daje to przybliżenie do wymaganego prawdopodobieństwa. f x f ( x )< f ( x 0)x0 fa^ x fa^( x ) < f^( x0)
Zakłada się, że nie jest „zbyt mały”, a wielkość twojej próbki jest wystarczająco duża (i wystarczająco rozłożona), aby dać przyzwoite oszacowanie w regionach o niskiej gęstości. Wydaje się jednak, że 20000 przypadków jest wystarczająco dużych, dla dwóch zmiennych .xfa^( x0) x
źródło