Eu não uso R, mas aqui está um cronograma que, espero, ajudará você a calcular o valor dos critérios de cluster BIC ou AIC para qualquer solução de cluster.
Essa abordagem segue a análise de cluster em duas etapas dos algoritmos do SPSS (consulte as fórmulas lá, começando no capítulo "Número de clusters" e depois vá para "Distância da probabilidade do log" em que ksi, a probabilidade do log, é definida). O BIC (ou AIC) está sendo calculado com base na distância de probabilidade do log. Estou mostrando abaixo a computação apenas para dados quantitativos (a fórmula dada no documento SPSS é mais geral e incorpora também dados categóricos; estou discutindo apenas a "parte" dos dados quantitativos):
X is data matrix, N objects x P quantitative variables.
Y is column of length N designating cluster membership; clusters 1, 2,..., K.
1. Compute 1 x K row Nc showing number of objects in each cluster.
2. Compute P x K matrix Vc containing variances by clusters.
Use denominator "n", not "n-1", to compute those, because there may be clusters with just one object.
3. Compute P x 1 column containing variances for the whole sample. Use "n-1" denominator.
Then propagate the column to get P x K matrix V.
4. Compute log-likelihood LL, 1 x K row. LL = -Nc &* csum( ln(Vc + V)/2 ),
where "&*" means usual, elementwise multiplication;
"csum" means sum of elements within columns.
5. Compute BIC value. BIC = -2 * rsum(LL) + 2*K*P * ln(N),
where "rsum" means sum of elements within row.
6. Also could compute AIC value. AIC = -2 * rsum(LL) + 4*K*P
Note: By default SPSS TwoStep cluster procedure standardizes all
quantitative variables, therefore V consists of just 1s, it is constant 1.
V serves simply as an insurance against ln(0) case.
Os critérios de armazenamento em cluster AIC e BIC são usados não apenas com armazenamento em cluster K-means. Eles podem ser úteis para qualquer método de agrupamento que trate a densidade dentro do cluster como variação dentro do cluster. Como o AIC e o BIC devem penalizar por "parâmetros excessivos", eles inequivocamente tendem a preferir soluções com menos clusters. "Menos grupos mais dissociados um do outro" poderia ser o seu lema.
Pode haver várias versões dos critérios de agrupamento BIC / AIC. O que mostrei aqui usa Vc
, variações dentro do cluster , como o principal termo da probabilidade de log. Alguma outra versão, talvez mais adequada para o cluster de k-means, pode basear a probabilidade de log nas somas de quadrados dentro do cluster .
A versão pdf do mesmo documento SPSS a que me referi.
E aqui estão finalmente as próprias fórmulas, correspondentes ao pseudocódigo acima e ao documento; é extraído da descrição da função (macro) que escrevi para usuários do SPSS. Se você tiver alguma sugestão para melhorar as fórmulas, envie um comentário ou uma resposta.