2016-11-19 8 views
0

Предполагают, у меня есть почасовые данные, соответствующие 5 категорий consective 10 дней, создан как:Статистика взаимоотношений членов кластера в течение нескольких дней

library(xts) 
set.seed(123) 
timestamp <- seq(as.POSIXct("2016-10-01"),as.POSIXct("2016-10-10 23:59:59"), by = "hour") 
data <- data.frame(cat1 = rnorm(length(timestamp),150,5), 
         cat2 = rnorm(length(timestamp),130,3), 
         cat3 = rnorm(length(timestamp),150,5), 
         cat4 = rnorm(length(timestamp),100,8), 
         cat5 = rnorm(length(timestamp),200,15)) 
data_obj <- xts(data,timestamp) # creat time-series object 
head(data_obj,2) 

Теперь за каждый день отдельно, я выполняю кластеризацию и посмотреть, как они категории ведут себя по отношению друг к другу с помощью простого kmeans как:

daywise_data <- split.xts(data_obj,f="days",k=1) # split data day wise 
clus_obj <- lapply(daywise_data, function(x){ # clustering day wise 
    return (kmeans(t(x), 2)) 
}) 

После кластеризация закончится, я визуализировать кластерные отношения более различных 10 дней с

sapply(clus_obj,function(x) x$cluster) # clustering results 

и я нашел результаты, как

enter image description here

при визуальном осмотре, то ясно, что cat1cat3 и всегда оставались в том же кластере. Аналогично cat4 и cat5 в основном в разных кластерах на 10 различных дней.

Помимо визуального осмотра, есть ли какой-либо автоматический подход для сбора статистики такого типа из таких таблиц кластеризации?


Примечание: Это фиктивный пример. У меня есть кадр данных, содержащий такие 80 категорий в течение непрерывных 100 дней. Автоматическое резюме, подобное приведенному выше, уменьшит усилие.

ответ

0

Оценка параметров кластерного кластера показывает простой способ решить эту проблему.

Вместо того, чтобы рассматривать назначения объектов-кластеров, которые нестабильны, эти методы определяют, находятся ли два объекта в одном кластере (который называется «парой»).

Таким образом, вы можете проверить, сильно ли эти пары меняются со временем, или нет.

Поскольку k-средство рандомизировано, вы также можете запускать его несколько раз для каждого временного фрагмента, так как они могут возвращать разные кластеры!

Тогда вы могли бы сказать это, например. серия 1 находится в том же кластере, что и серия 2, в 90% результатов. и т. д.

+0

Ваши правильные объяснения и я хочу рассчитать этот процент. Но внешние оценочные показатели, упомянутые в [Wikipedia] (https://en.wikipedia.org/wiki/Cluster_analysis), похоже, не применяются в моем случае, поскольку у меня нет основополагающей истины (эталон). Эта кластеризация неконтролируема. Ваше дальнейшее понимание может помочь мне копать дальше ... –

+0

Тот же подход может использоваться для сравнения двух результатов с разных временных точек. Большинство из этих методов являются симметричными, по сути, они являются мерой подобия для разбиений. –

+0

Я немного перефразировал свою проблему и получил ответ на [this] (http://stackoverflow.com/q/40713096/3317829) ссылка переполнения стека –