Użyłem statystyki GAP do oszacowania k klastrów w R. Jednak nie jestem pewien, czy dobrze ją interpretuję.
Z powyższego wykresu zakładam, że powinienem użyć 3 klastrów.
Z drugiego wykresu powinienem wybrać 6 skupień. Czy to poprawna interpretacja statystyki GAP?
Byłbym wdzięczny za wszelkie wyjaśnienia.
Komentarze
Odpowiedź
Aby uzyskać idealne grupowanie, należy wybrać $ k $ tak, aby zmaksymalizować statystykę luki. Oto przykład podany przez Tibshirani i wsp. (2001) w ich artykule, wykres utworzony przez sztuczne dane z 2 skupieniami. Jak widać, 2 jest wyraźnie idealnym $ k $, ponieważ statystyka luki jest zmaksymalizowana na poziomie $ k = 2 $:
Jednak , w wielu rzeczywistych zestawach danych klastry nie są tak dobrze zdefiniowane i chcemy być w stanie zrównoważyć maksymalizację statystyki luki z parsymonią modelu. Przykład: pierwszy obraz OP. Jeśli „ponownie maksymalizujemy statystykę luki samodzielnie , powinniśmy wybrać model z 30 (lub nawet więcej!) Klastrami. Zakładając, że wykres będzie nadal wzrastał, oczywiście wyniki są mniej przydatne. Dlatego Tibshirani sugeruje metodę 1-standard-error :
Wybierz rozmiar klastra $ \ hat {k} $ jako najmniejszy $ k $ taki, że $ \ text {Gap} (k) \ geq \ text {Gap} (k + 1) – s_ {k + 1} $.
Co nieformalnie identyfikuje punkt, w którym tempo wzrostu statystyki luk zaczyna „zwalniać”.
Tak więc, na pierwszym obrazie OP, jeśli przyjmiemy czerwone słupki błędu za błąd standardowy, to 3 jest najmniejszym $ k $ spełniającym to kryterium:
Jednak w przypadku drugiego obrazu OP zobaczysz, że statystyka przerwy natychmiast maleje dla $ k > 1 $. Zatem pierwszy $ k $, który spełnia kryterium 1 błędu standardowego, to 1 $. To jest sposób, w jaki wykres mówi, że dane nie powinny być grupowane.
Jak się okazuje, istnieją dodatkowe sposoby wyboru optymalnego $ k $. Domyślna metoda funkcji R clusGap
, na przykład, zawsze szuka lokalnego maksimum wykresu i wybiera najmniejsze $ k $ w ramach jednego błędu standardowego lokalnego maks. Używając tej metody firstSEmax
, wybralibyśmy odpowiednio $ k = 30 $ i $ k = 19 $ odpowiednio dla wykresów OP 1 i 2. Jak już powiedziałem, wydaje się, że jest to problem ze złożonością.
Komentarze
- Podczas szacowania wartości k $ na podstawie statystyki luk , jak mogę obliczyć / oszacować prawdopodobieństwo, że k $ to prawdziwa liczba klastrów? A może moje pytanie jest bezsensowne?
- Dziękuję za wskazanie kompromisu między maksymalizacją statystyki luki a uzyskaniem oszczędności modelu
clusGap
w oparciu o globalmax, nie ' nie wiem, jak zaimplementować maxSE.