Сюжет Последовательности событий / кластеризация последовательностей событий

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

Я хочу изобразить свои последовательности событий так же, как мы строим последовательности состояний, используя 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) Разве невозможно вычислить матрицы расстояний, а затем применить методы кластеризации к последовательностям событий?

Спасибо!

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 функция. На странице справки этой функции есть множество примеров. Подробнее о сюжете см.

Bürgin, R. & Ritschard, G. (2014), "Оформленный параллельный координатный график для категориальных продольных данных", Американский статистик. Том 68(2), с. 98-103. дои

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

Что касается кластеризации последовательностей событий, вы можете использовать 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)

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

Ritschard, G., Bürgin, R. & Studer, M. (2013), "Исследовательское изучение истории жизненных событий", In McArdle, JJ & Ritschard, G. (eds) Современные проблемы исследования исследовательского интеллектуального анализа данных в поведенческих науках. Серия: Количественная методология, с. 221-253. Нью-Йорк: Рутледж. Препринт

Другие вопросы по тегам