В настоящее время я пытаюсь проанализировать отношения соседства объектов, перемещающихся во времени в 2D-системе координат. Именно мне хотелось бы кластеризовать объекты в зависимости от их близости друг к другу. Затем я хотел бы оценить, существует ли устойчивый кластер во времени.
До сих пор мне удавалось вычислить матрицы расстояний для каждой временной точки, содержащие евклидовы расстояния между всеми объектами. Тем не менее, я изо всех сил пытаюсь найти пакет R, который позволяет кластеризовать объекты с несколькими переменными (одна переменная = одно евклидово расстояние до другого объекта) с течением времени. Я могу выполнять иерархическую кластеризацию для каждой временной точки, но не знаю, как сравнивать кластеры между временными точками.
Кластер, момент времени = 1
Кластер, момент времени = 2
Этот код я использую для вычисления матрицы dist и hclust:
head(migrationfile %>% select(X, Y, Track, Time))
X Y Track Time
206330 272.0473 1211.049 2 0
206331 343.7157 1252.734 3 0
206332 294.7179 1267.360 4 0
206333 235.4818 1271.748 5 0
206334 402.9518 1279.793 7 0
206335 372.9681 1291.493 8 0
subset_migrationfile <- subset(migrationfile, migrationfile$Time == TimePoint)
timepoint_migrationfile <- subset_migrationfile %>% select(X, Y)
timepoint_migrationfile <- as.matrix(timepoint_migrationfile)
rownames(timepoint_migrationfile) <- subset_migrationfile$Track
dist_matrix <- dist(timepoint_migrationfile, method = "euclidean")
str(dist_matrix)
'dist' num [1:1128] 141 203 207 279 323 ...
- attr(*, "Size")= int 48
- attr(*, "Labels")= chr [1:48] "20" "17" "2" "78" ...
- attr(*, "Diag")= logi FALSE
- attr(*, "Upper")= logi FALSE
- attr(*, "method")= chr "euclidean"
- attr(*, "call")= language dist(x = timepoint_migrationfile, method = "euclidean")
hlust_dist_matrix <- hclust(dist_matrix)
clusterheight <- 200
plot(hlust_dist_matrix, hang = -1)
cutree(hlust_dist_matrix, h = clusterheight)
rect.hclust(hlust_dist_matrix, h = clusterheight, border="red")
Буду признателен за любые сведения о том, как анализировать / сравнивать кластеры во времени!