Ho utilizzato la statistica GAP per stimare k cluster in R. Tuttavia “non sono sicuro di interpretarla bene.
Dalla trama sopra presumo che dovrei usare 3 cluster.
Dal secondo grafico dovrei scegliere 6 cluster. È uninterpretazione corretta della statistica GAP?
Sarei grato per qualsiasi spiegazione.
Commenti
Risposta
Per ottenere un clustering ideale, dovresti selezionare $ k $ in modo da massimizzare la statistica del gap. Ecco lesempio fornito da Tibshirani et al. (2001) nel loro articolo, il grafico formato da dati artificiali con 2 cluster. Come puoi vedere, 2 è chiaramente lideale $ k $, perché la statistica del gap è massimizzata a $ k = 2 $:
Tuttavia , in molti set di dati del mondo reale, i cluster non sono così ben definiti e vogliamo essere in grado di bilanciare massimizzando la statistica del gap con la parsimonia del modello. Caso in questione: la prima immagine di OP. Se stiamo massimizzando la statistica del divario solo , allora dovremmo scegliere il modello con 30 (o anche più!) Cluster. Supponendo che quel grafico continui ad aumentare, ovviamente, i risultati sono meno utili. Quindi Tibshirani suggerisce il metodo 1-standard-error :
Scegli la dimensione del cluster $ \ hat {k} $ come il più piccolo $ k $ tale che $ \ text {Gap} (k) \ geq \ text {Gap} (k + 1) – s_ {k + 1} $.
Che informalmente sta identificando il punto in cui il tasso di aumento della statistica del gap inizia a “rallentare”.
Quindi, nella prima immagine di OP, se prendiamo le barre di errore rosse come un errore standard, allora 3 è il $ k $ più piccolo che soddisfa questo criterio:
Per la seconda immagine di OP, tuttavia, vedrai che la statistica del divario diminuisce immediatamente per $ k > 1 $. Quindi il primo $ k $ che soddisfa il criterio di errore standard 1 è $ 1 $. Questo è il modo in cui la trama dice che i dati non dovrebbero essere raggruppati.
Come risulta, ci sono altri modi per scegliere $ k $ ottimale. Il metodo predefinito della funzione R clusGap
, ad esempio, cerca sempre il massimo locale del grafico e seleziona il $ k $ più piccolo allinterno di un errore standard del massimo locale. Utilizzando questo metodo firstSEmax
, selezioneremmo $ k = 30 $ e $ k = 19 $ rispettivamente per i grafici 1 e 2 di OP. Come ho detto, tuttavia, questo sembra soffrire di un problema di complessità.
Commenti
- Quando si stima il valore di $ k $ dalla statistica del gap , come posso calcolare / stimare la probabilità che $ k $ sia il vero numero di cluster? O la mia domanda è priva di significato?
- Grazie per aver sottolineato il compromesso tra la massimizzazione della statistica del divario e la parsimonia del modello
clusGap
in base a globalmax, ' non sapevo come implementare maxSE.