Použil jsem statistiku GAP k odhadu klastrů v R. Nicméně si nejsem jistý, jestli ji dobře interpretuji.
Z výše uvedeného grafu předpokládám, že bych měl použít 3 klastry.
Z druhého grafu bych měl vybrat 6 klastrů. Je správná interpretace statistik GAP?
Byl bych vděčný za jakékoli vysvětlení.
Komentáře
Odpověď
Chcete-li získat ideální shlukování, měli byste vybrat $ k $ tak, abyste maximalizovali statistiku mezery. Zde je příklad uvedený Tibshirani et al. (2001) ve své práci, děj tvořený umělými daty se 2 shluky. Jak vidíte, 2 je jasně ideálním $ k $, protože statistika mezery je maximalizována na $ k = 2 $:
„v mnoha souborech dat z reálného světa nejsou klastry tak dobře definované a my chceme být schopni vyvážit maximalizaci statistik mezer s šetrností modelu. Příklad: první obrázek OP. Pokud maximalizujeme statistiku mezery samostatně , měli bychom zvolit model s 30 (nebo i více!) Klastry. Za předpokladu, že tento graf bude pokračovat ve zvyšování, samozřejmě, výsledků jsou méně užitečné. Tibshirani tedy navrhuje metodu 1-standard-error :
Vyberte velikost clusteru $ \ hat {k} $ jako nejmenší $ k $ tak, aby $ \ text {Gap} (k) \ geq \ text {Gap} (k + 1) – s_ {k + 1} $.
Což neformálně identifikuje bod, ve kterém se rychlost nárůstu mezery začíná „zpomalovat“.
Pokud tedy na prvním obrázku OP vezmeme červené chybové pruhy jako standardní chybu, pak 3 je nejmenší $ k $, který splňuje toto kritérium:
U druhého obrázku OP však uvidíte, že statistika mezery se okamžitě sníží o $ k > 1 $. Takže první $ k $, které splňuje kritérium 1 standardní chyby, je $ 1 $. Tímto způsobem se v zápletce říká, že data by neměla být seskupována.
Jak se ukazuje, existují další způsoby, jak zvolit optimální $ k $. Výchozí metoda funkce R clusGap
například vždy vyhledá místní maximum grafu a vybere nejmenší $ k $ v rámci jedné standardní chyby z místní max. Pomocí této metody firstSEmax
bychom pro grafy OP 1 a 2 vybrali $ k = 30 $ a $ k = 19 $. Jak jsem již řekl, zdá se, že to trpí problémem se složitostí.
Komentáře
- Při odhadu hodnoty $ k $ ze statistiky mezery , jak mohu vypočítat / odhadnout pravděpodobnost, že $ k $ je skutečný počet klastrů? Nebo je moje otázka nesmyslná?
- Děkuji, že jste poukázal na kompromis mezi maximalizací statistik mezer a přijetím šetrnosti k modelu.
clusGap
na základě globalmax, nevěděl jsem ' jak implementovat maxSE.