This function is a wrapper to two functions: intCriteria
function in
package clusterCrit, and NbClust
in package NbClust. It
can be used to quantitatively compare different clustering options.
evalClusters(
spectra,
pkg = "NbClust",
hclst = NULL,
k = NULL,
h = NULL,
crit = "Dunn",
...
)
An object of S3 class Spectra
.
Character. One of c("NbClust", "clusterCrit")
. The
package to use for comparing clusters.
An object of S3 class hclust
. Only applies to
pkg = "clusterCrit"
.
Integer. The number of groups in which to cut the tree
(hclust
). Only applies to pkg = "clusterCrit"
.
Numeric. The height at which to cut the tree. Either k
or
h
must be given, with k
taking precedence. See
cutree
. Only applies to pkg = "clusterCrit"
.
String. A string giving the criteria to be used in evaluating
the quality of the cluster. See liintCriteria
. Only applies to
pkg = "clusterCrit"
.
Other parameters to be passed to the functions. In particular,
the default NbClust
package will need some parameters. See the
example.
A list giving the results, as described in intCriteria
or
NbClust
.
Both of the packages used here compute very similar quantities. For details, see the publication and respective vignettes. Package clusterCrit takes the approach in which you cluster in a separate step using whatever parameters you like, then the tree is cut either at a given height or in such a way as to produce a fixed number of groups. One or more indices are then computed. Then, you repeat this process with different clustering criteria, and compare. Package NbClust allows one to specify a range of possible number of clusters and a few other parameters and will return indices corresponding to each set options, which is somewhat more automated.
M. Charrad et. al. "NbClust: An R Package for Determining the Relevant Number of Clusters in a Data Set." J. Stat. Soft. vol. 61 no. 6 October 2014.
hclust
for the underlying base function.
hcaSpectra
for HCA analysis of a Spectra
object.
hcaScores
for HCA analysis of PCA scores from a
Spectra
object. Additional documentation at
https://bryanhanson.github.io/ChemoSpec/
if (FALSE) {
data(metMUD2)
# Using clusterCrit
res1 <- hcaSpectra(metMUD2) # default clustering and distance methods
res2 <- hcaSpectra(metMUD2, d.method = "cosine")
# The return value from hcaSpectra is a list with hclust as the first element.
crit1 <- evalClusters(metMUD2, pkg = "clusterCrit", hclst = res1[[1]], k = 2)
crit2 <- evalClusters(metMUD2, pkg = "clusterCrit", hclst = res2[[1]], k = 2)
# crit1 and crit2 can now be compared.
# Using NbClust
res3 <- evalClusters(metMUD2, min.nc = 2, max.nc = 5, method = "average", index = "kl")
}