2017-03-03 4 views
1

Le package affiche-t-il toujours les contextes de droite à gauche?Quand PST affiche-t-il les contextes de gauche à droite et de droite à gauche?

Dans la fonction query(), nous utilisons une chaîne pour représenter un contexte. Si je suppose que le contexte est spécifié de droite à gauche (comme il semble être dans les fonctions print() et cmine()), et je suis intéressé par la séquence A->B->C, alors dois-je interroger pour:

query(S1.p1, "C-B-A") 

?

De plus, dans la fonction predict(), nous utilisons seqdef() pour définir les séquences à prédire. Cela signifie-t-il que je devrais les spécifier de gauche à droite, comme TraMineR le fait habituellement?

x <- seqdef("A-B-C) 
predict(S1.p1, x) 

?

Répondre

1

Dans un arbre de suffixe probabiliste (PST), une branche définit un suffixe de droite à gauche lorsque nous commençons à le lire depuis la racine. Au premier niveau vous avez le dernier élément du suffixe, au niveau 2 vous avez l'élément précédant le dernier élément, etc. L'arbre imprimé est affiché avec la racine sur le côté gauche et est développé de gauche à droite. Néanmoins, les suffixes affichés dans un nœud du résultat d'impression doivent être lus naturellement de gauche à droite. Par exemple, un nœud a-b-c signifie un suffixe avec c à la fin. Un tel noeud est obtenu à partir du noeud b-c en ajoutant a à gauche.

La même chose vaut pour le résultat de cmine. Pour chaque contexte trouvé, par ex. a-b-c, cmine donne la probabilité d'obtenir chacun des états possibles immédiatement après le contexte, c'est-à-dire, après c dans l'exemple. En résumé, les séquences et les contextes sont toujours affichés de gauche à droite, même si les contextes sont construits de la droite vers la gauche. Donc, si vous voulez une requête pour la séquence A->B->C, utilisez query(S1.p1, "A-B-C"). De même, pour prédire une séquence spécifique avec predict, définissez la séquence naturellement de gauche à droite.

1

Les séquences doivent être lues de gauche à droite. Le code suivant fournit une validation de ce:

library(PST) 
data.seq <- seqdef("A-B-C-D-E-F") 
S1.test <- pstree(data.seq, ymin = 0.001, lik = FALSE, with.missing = FALSE) 
print(S1.test) 

--(e)-[ p=(0.2,0.2,0.2,0.2,0.2,0.2) - n=6 ] 
    `--(A)-[ p=(0.001,0.995,0.001,0.001,0.001,0.001) - n=1 ]--| 
    `--(B)-[ p=(0.001,0.001,0.995,0.001,0.001,0.001) - n=1 ] 
    `--(A-B)-[ p=(0.001,0.001,0.995,0.001,0.001,0.001) - n=1 ]--| 
    `--(C)-[ p=(0.001,0.001,0.001,0.995,0.001,0.001) - n=1 ] 
    `--(B-C)-[ p=(0.001,0.001,0.001,0.995,0.001,0.001) - n=1 ] 
     `--(A-B-C)-[ p=(0.001,0.001,0.001,0.995,0.001,0.001) - n=1 ]--| 
    `--(D)-[ p=(0.001,0.001,0.001,0.001,0.995,0.001) - n=1 ] 
    `--(C-D)-[ p=(0.001,0.001,0.001,0.001,0.995,0.001) - n=1 ] 
     `--(B-C-D)-[ p=(0.001,0.001,0.001,0.001,0.995,0.001) - n=1 ] 
      `--(A-B-C-D)-[ p=(0.001,0.001,0.001,0.001,0.995,0.001) - n=1 ]--| 
    `--(E)-[ p=(0.001,0.001,0.001,0.001,0.001,0.995) - n=1 ] 
    `--(D-E)-[ p=(0.001,0.001,0.001,0.001,0.001,0.995) - n=1 ] 
     `--(C-D-E)-[ p=(0.001,0.001,0.001,0.001,0.001,0.995) - n=1 ] 
      `--(B-C-D-E)-[ p=(0.001,0.001,0.001,0.001,0.001,0.995) - n=1 ] 
       `--(A-B-C-D-E)-[ p=(0.001,0.001,0.001,0.001,0.001,0.995) - n=1 ]--| 


plot(S1.test) 

Validation of bottom-to-top reading of plotted tree

Il montre également que l'arbre tracé doit être lu à partir du bas vers le haut.