2015-03-10 4 views
2

Peut-être que cette question est terne, mais j'ai fait mes recherches dessus et je n'ai pas trouvé de réponse.Plot Séquences d'événements/Séquences d'événements Clustering

Je veux tracer mes séquences d'événements de la même manière que nous traçons séquences d'états en utilisant seqIplot, seqfplot, seqdplot et seqmtplot. seqplot en général.

lorsque je tente de le faire si je reçois le message:

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

me porte à croire que ces fonctions ne concernent que la séquence d'états.

Dans la section 10 du guide de l'utilisateur, ils donnent uniquement des exemples de diagrammes de sous-séquences. Mais ce ne sont pas tout à fait la même chose.

1) Existe-t-il un moyen de générer les tracés mentionnés pour les séquences d'événements? dans lequel les états seraient les transitions.

Aussi lorsque je tente de calculer une matrice de distance, je reçois une erreur semblable:

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

2) est-il pas possible de calculer des matrices de distance, puis appliquer les méthodes de classification des séquences d'événements?

merci!

Répondre

3

Vous avez raison. La famille de fonctions seqplot est réservée aux séquences d'états.

Pour tracer des séquences d'événements en tant que séquences d'état, vous devez d'abord les transformer en séquences d'état.

En supposant que vos séquences d'événements sont au format TSE (formulaire de télésignalisation vertical) que le fichier exemple actcal.tse fourni par TraMineR, vous pouvez les convertir en séquences d'état en utilisant TSE_to_STS du paquet compagnon TraMineRextras.

Pour la transformation, vous devez spécifier dans quel état vous êtes après chaque événement. Vous faites cela en créant une matrice de transformation avec la fonction seqe2stm. Chaque cellule de cette matrice doit donner le nouvel état qui se produit lorsque l'événement de colonne (nom de colonne) se produit lorsque nous sommes dans l'état de ligne correspondant (nom de ligne).

Pour illustrer, voici l'exemple de la page d'aide de 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") 

Une fois que vous avez vos séquences d'états sous forme STS, vous pouvez créer l'objet de séquence d'états et de tracer le graphe.

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

Vous pouvez faire un terrain de coordonnées parallèle de votre séquence d'événements en utilisant la fonction seqpcplot. Il y a beaucoup d'exemples sur la page d'aide de cette fonction. Pour plus de détails sur l'intrigue, voir

Bürgin, R. & Ritschard, G. (2014), «Un tracé de coordonnées parallèle décoré pour les données longitudinales catégoriques», The American Statistician. Vol. 68 (2), p. 98-103. doi

Espérons que cela aide.

2

en ce qui concerne le regroupement des séquences d'événements, vous pouvez utiliser la fonction seqedist du paquet compagnon 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) 

Pour plus d'explications sur la distance, vous pouvez regarder le papier

Ritschard, G., Bürgin, R. & Studer, M. (2013), "L'exploitation minière de la vie Exploratoire Histoires d'événements", Dans McArdle, JJ & Ritschard, G. (eds) Problèmes contemporains dans l'exploration de données exploratoire dans les sciences du comportement. Série: Quantitative Methodology, pp. 221-253. New York: Routledge. Preprint