少し前に mclust を使用したことがあります。
1) mclust は正しい BIC 選択方法を使用します。この投稿を参照してください:
https://stats.stackexchange.com/questions/237220/mclust-model-selection
一番下を参照してください。しかし、要約すると、BIC では、数式でマイナス記号を使用するかどうかによって、低と高のどちらを最適化するかが異なります。
BIC の一般的な定義は、BIC=−2×ln(L(θ|x))+k×ln(n)BIC=−2×ln(L(θ|x))+k×ln(n) です。mclust には負の成分は含まれていません。
2) mclust は混合モデルを使用してクラスタリングを実行します (つまり、モデルベース)。これは k-means とはかなり異なるため、「他の k-means クラスター アプローチの一部とは少し異なる」という言い回しに注意します (主に、ここで「その他」が意味すること)。モデル選択のプロセスは、mclust マニュアルに簡単に説明されています。
mclust は、BIC に従って選択されたモデルとコンポーネント数に対して、EM アルゴリズムを介して最尤法によってデータに適合された混合ガウスを提供します。対応するコンポーネントは、参照セクションで引用された記事で説明されている方法に従って、エントロピー基準に従って階層的に結合されます。BIC によって選択されたクラスと 1 の間のクラス数を持つ解が、clustCombi クラス オブジェクトとして返されます。
完全な説明については、実際の論文を見る方が便利です。
https://www.stat.washington.edu/raftery/Research/PDF/Baudry2010.pdf
またはこちらhttps://www.ncbi.nlm.nih.gov/pmc/articles/PMC2953822/
mclust によって提供されるエントロピー プロットは、因子分析のスクリー プロットのように解釈されることを意図しています (つまり、クラスの最適な数を決定するために肘を探すことによって)。スクリー プロットはクラスター数の選択を正当化するのに有用であり、これらのプロットは付録に属していると主張します。
mclust は BIC に加えて ICL 統計も返すため、レビュー担当者への妥協としてそれを報告することを選択できます。
https://cran.r-project.org/web/packages/mclust/vignettes/mclust.html (統計を出力する方法の例を参照)
3) entPlot 値のテーブルを作成する場合は、次のように抽出できます (?entPlot の例から)。
## Not run:
data(Baudry_etal_2010_JCGS_examples)
# run Mclust to get the MclustOutput
output <- clustCombi(ex4.2, modelNames = "VII")
entPlot(output$MclustOutput$z, output$combiM, reg = c(2,3))
# legend: in red, the single-change-point piecewise linear regression;
# in blue, the two-change-point piecewise linear regression.
# added code to extract entropy values from the plot
combiM <- output$combiM
Kmax <- ncol(output$MclustOutput$z)
z0 <- output$MclustOutput$z
ent <- numeric()
for (K in Kmax:1) {
z0 <- t(combiM[[K]] %*% t(z0))
ent[K] <- -sum(mclust:::xlog(z0))
}
data.frame(`Number of clusters` = 1:Kmax, `Entropy` = round(ent, 3))
Number.of.clusters Entropy
1 1 0.000
2 2 0.000
3 3 0.079
4 4 0.890
5 5 6.361
6 6 20.158
7 7 35.336
8 8 158.008