Здравствуйте! Задача состоит в следующем: у меня есть массив точек опробования - координаты (двумерные) плюс значения содержаний чего-либо. Мне нужно выбрать локальные группы точек, которые будут характеризоваться минимальной внутригрупповой изменчивостью (станд. отклонение, дисперсия или межквартильный размах). Какими средствами R (помимо методик кластерного анализа) можно решать подобные задачи.
PS логика подсказывает, что методы должны быть итеративными.
[ Сообщение с мобильного устройства ]
Выбор групп объектов с минимальной внутригрупповой изменчиво
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 31 окт 2011, 00:18
- Репутация: 14
- Откуда: Кривий Ріг
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Выбор групп объектов с минимальной внутригрупповой измен
очевидно, что обычный кластерный анализ (по значениям) тут вообще ни причем, поскольку он типологический, а тут нужен топологический. Для данной задачки подходит минимальное остовое дерево (minimal spaning tree), что дает нам иерархическую кластеризацию сверху вниз, либо иерархическая кластеризация снизу вверх (слиянием). Для этого нужно установить топологическое соседство (например, в триангуляции Делоне) и начать сливать соседние точки в кластеры, заменяя их центроидами (т..е. делать что-то типа метода Варда, но расстояние считать только с топологическими соседями).ymr3R9Jge писал(а):Здравствуйте! Задача состоит в следующем: у меня есть массив точек опробования - координаты (двумерные) плюс значения содержаний чего-либо. Мне нужно выбрать локальные группы точек, которые будут характеризоваться минимальной внутригрупповой изменчивостью (станд. отклонение, дисперсия или межквартильный размах). Какими средствами R (помимо методик кластерного анализа) можно решать подобные задачи.
Самый просто вариант для прикидки - включить в вектор значений координаты в виде штрафа (управляя их весом за счет нормализации), и использовать иерархическую кластеризацию слиянием, и посмотреть, есть ли "естественное расстояние" для разрезания на классы:
Код: Выделить всё
p.data<-as.matrix(cbind(scale(ny.covar),my.wts*scale(my.coord))
my.data.dist<-dist(my.data)
p.tree<-hclust(my.data.dist,method="ward")
plot(p.tree)
p.cls<-cutree(p.tree, k = 3)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 22 гостя