График последовательности событий / Кластеризация последовательностей событий

Возможно, это очень скучный вопрос, но я исследовал его и не нашел ответа.

Я хочу отображать свои последовательности событий так же, как мы рисуем последовательности состояний, используя seqIplot, seqfplot, seqdplot и seqmtplot. seqplot в общем.

когда я пытаюсь это сделать, я получаю сообщение:

Error: data is not a sequence object, use seqdef function to create one

Это заставляет меня поверить, что эти функции применимы только к последовательности состояний.

В разделе 10 руководства пользователя приведены только примеры графиков подпоследовательностей. Но это не совсем то же самое.

1) Есть ли способ создать упомянутые графики для последовательностей событий? в которых состояния были бы переходами.

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

Error:  [!] data is not a state sequence object, use 'seqdef' function to create one

2) Нельзя ли вычислить матрицы расстояний, а затем применить методы кластеризации к последовательностям событий?

Спасибо !


person Pedro Braz    schedule 10.03.2015    source источник


Ответы (2)


Ты прав. Семейство функций seqplot предназначено только для последовательностей состояний.

Чтобы построить последовательности событий как последовательности состояний, вы должны сначала преобразовать их в последовательности состояний.

Предполагая, что ваши последовательности событий находятся в формате TSE (вертикальная форма события с отметкой времени) как файл примера actcal.tse, предоставленный TraMineR, вы можете преобразовать их в последовательности состояний, используя TSE_to_STS сопутствующего пакета TraMineRextras.

Для преобразования вы должны указать, в каком состоянии вы находитесь после каждого события. Вы делаете это, создавая матрицу преобразования с помощью функции seqe2stm. Каждая ячейка этой матрицы должна давать новое состояние, которое возникает, когда событие столбца (имя столбца) происходит, когда мы находимся в соответствующем состоянии строки (имя строки).

Чтобы проиллюстрировать, вот пример со страницы справки TSE_to_STS

data(actcal.tse)
events <- c("PartTime", "NoActivity", "FullTime", "LowPartTime")

## States defined by last occurred event (forgetting all previous events).
stm <- seqe2stm(events, dropList=list("PartTime"=events[-1],
           NoActivity=events[-2], FullTime=events[-3],
           LowPartTime=events[-4]))

mysts <- TSE_to_STS(actcal.tse[1:100,], id=1, timestamp=2, event=3,
           stm=stm, tmin=1, tmax=12, firstState="None")

Когда у вас есть последовательности состояний в форме STS, вы можете создать объект последовательности состояний и построить их.

my.seq <- seqdef(mysts)
seqdplot(my.seq)

Кроме того, вы можете построить параллельный график вашей последовательности событий, используя функцию seqpcplot. На странице справки этой функции есть множество примеров. Подробности о сюжете см.

Бюргин, Р. и Ричард, Г. (2014), «Декорированный график с параллельными координатами для категориальных продольных данных», Американский статистик. Том. 68(2), стр. 98-103. doi

Надеюсь это поможет.

person Gilbert    schedule 10.03.2015

Что касается кластеризации последовательностей событий, вы можете использовать функцию seqedist сопутствующего пакета TraMineRextras.

data(actcal.tse)
actcal.seqe <- seqecreate(actcal.tse[1:200,])[1:6,]
## We have 8 different event in this dataset
idcost <- rep(1, 8)
dd <- seqedist(actcal.seqe, idcost=idcost, vparam=.1)

Для объяснения на расстоянии, вы можете посмотреть на бумаге

Ричард, Г., Бюргин, Р. и Студер, М. (2013), «Исследовательский анализ историй жизненных событий», In McArdle, JJ. и Ричард Г. (редакторы) Современные проблемы исследовательского интеллектуального анализа данных в поведенческих науках. Серия: Количественная методология, стр. 221-253. Нью-Йорк: Рутледж. Препринт

person Gilbert    schedule 10.03.2015