El utilizado por la opción "ward.D" (equivalente a la única opción Ward "ward" en las versiones R <= 3.0.3) no implementa el criterio de agrupación de Ward (1963), mientras que la opción "ward.D2" implementa ese criterio ( Murtagh y Legendre 2014).
( http://stat.ethz.ch/R-manual/R-patched/library/stats/html/hclust.html )
Aparentemente, ward.D no implementa el criterio de Ward correctamente. No obstante, parece hacer un buen trabajo con respecto a las agrupaciones que produce. ¿Qué implementa method = "ward.D" si no es el criterio de Ward?
Referencias
Murtagh, F. y Legendre, P. (2014). Método de agrupamiento aglomerativo jerárquico de Ward: ¿qué algoritmos implementan el criterio de Ward? Diario de Clasificación , 31 (3), 274-295.
r
clustering
ward
Raffael
fuente
fuente
Respuestas:
El manuscrito relevante está aquí .
La diferencia entre ward.D y ward.D2 es la diferencia entre los dos criterios de agrupación que en el manuscrito se denominan Ward1 y Ward2.
Básicamente se reduce al hecho de que el algoritmo Ward se implementa directamente correctamente solo en Ward2 (ward.D2), pero Ward1 (ward.D) también se puede usar, si las distancias euclidianas (desde
dist()
) se cuadran antes de ingresarlas en elhclust()
usando el ward.D como método.Por ejemplo, SPSS también implementa Ward1, pero advierte a los usuarios que las distancias deben cuadrarse para obtener el criterio Ward. En tal sentido, la implementación de ward.D no está en desuso y, sin embargo, podría ser una buena idea retenerla por compatibilidad con versiones anteriores.
fuente
Ward algorithm is directly correctly implemented in just Ward2
, sino que: (1) para obtener resultados correctos con ambas implementaciones, use distancias euclidianas cuadradas con Ward1 y distancias euclidianas no cuadradas con Ward2; (2) para hacer que sus dendrogramas de salida sean más comparables (idénticos), aplique la raíz cuadrada a los niveles de fusión después de Ward1 o los niveles de fusión cuadrados después de Ward2, antes de construir el dendrograma.La única diferencia entre
ward.D
&ward.D2
es el parámetro de entrada.hclust(dist(x)^2,method="ward.D")
~hclust(dist(x)^2,method="ward")
que son equivalentes a:
hclust(dist(x),method="ward.D2")
Puede encontrar el documento de investigación: Método de agrupación jerárquica de Ward: Criterio de agrupación y algoritmo de aglomeración
Los valores del criterio Ward2 están " en una escala de distancias ", mientras que los valores del criterio Ward1 están " en una escala de distancias al cuadrado ".
fuente
Me encontré con el artículo de investigación que corresponde a la función objetivo que está siendo optimizada por "Ward1 (ward.D)": Agrupación jerárquica a través de distancias conjuntas entre interiores: extender el método de variación mínima de Ward . Resulta que la implementación de R de "Ward1 (ward.D)" es equivalente a minimizar la distancia de energía entre los grupos de grupos.
fuente
ward.D2
, but I don't think it is stated anywhere thatward.D1
. In fact, on page 161–162, it is stated that for