pam(x, k, diss = F, metric = "euclidean", stand = F)
x
|
data matrix or dataframe, or dissimilarity matrix, depending on the
value of the diss argument.
In case of a matrix or dataframe, each row corresponds to an observation, and each column corresponds to a variable. All variables must be numeric. Missing values (NAs) are allowed.
In case of a dissimilarity matrix,
|
k
|
integer, the number of clusters.
It is required that 0 < k < n where n is the number of observations.
|
diss
|
logical flag: if TRUE, then x will be considered as a dissimilarity
matrix. If FALSE, then x will be considered as a matrix of observations
by variables.
|
metric
|
character string specifying the metric to be used for calculating
dissimilarities between observations.
The currently available options are "euclidean" and "manhattan".
Euclidean distances are root sum-of-squares of differences, and
manhattan distances are the sum of absolute differences.
If x is already a dissimilarity matrix, then this argument
will be ignored.
|
stand
|
logical flag: if TRUE, then the measurements in x are standardized before
calculating the dissimilarities. Measurements are standardized for each
variable (column), by subtracting the variable's mean value and dividing by
the variable's mean absolute deviation.
If x is already a dissimilarity matrix, then this argument
will be ignored.
|
pam
is fully described in chapter 2 of Kaufman and Rousseeuw (1990).
Compared to the k-means approach in kmeans
, the function pam
has
the following features: (a) it also accepts a dissimilarity matrix;
(b) it is more robust because it minimizes a sum of dissimilarities
instead of a sum of squared euclidean distances; (c) it provides a novel
graphical display, the silhouette plot (see plot.partition
)
which also allows to select the number of clusters.
The pam
-algorithm is based on the search for k
representative objects or
medoids among the observations of the dataset. These observations should
represent the structure of the data. After finding a set of k
medoids,
k
clusters are constructed by assigning each observation to the nearest
medoid. The goal is to find k
representative objects which minimize the
sum of the dissimilarities of the observations to their closest representative
object.
The algorithm first looks for a good initial set of medoids (this is called
the BUILD phase). Then it finds a local minimum for the objective function,
that is, a solution such that there is no single switch of an observation with
a medoid that will decrease the objective (this is called the SWAP phase).
"pam"
representing the clustering.
See pam.object
for details.pam
, clara
, and
fanny
require that the number of clusters be given by the user.
Hierarchical methods like agnes
, diana
, and mona
construct a
hierarchy of clusterings, with the number of clusters ranging from one to
the number of observations.pam
will take a lot of
computation time. Then the function clara
is preferable.Struyf, A., Hubert, M. and Rousseeuw, P.J. (1997). Integrating Robust Clustering Techniques in S-PLUS, Computational Statistics and Data Analysis, 26, 17-37.
pam.object
, clara
, daisy
, partition.object
,
plot.partition
, dist
.# generate 25 objects, divided into 2 clusters. x <- rbind(cbind(rnorm(10,0,0.5), rnorm(10,0,0.5)), cbind(rnorm(15,5,0.5), rnorm(15,5,0.5))) pamx <- pam(x, 2) pamx summary(pamx) plot(pamx) pam(daisy(x, metric = "manhattan"), 2, diss = T)