6

R パッケージ TraMineR を使用して、シーケンス解析に関する学術研究を行っています。

誰かがターゲット会社にいて、出かけて、ターゲット会社に戻ってくるというパターンを見つけたいです。

(簡略化) 州 A をターゲット企業として定義しました。B は業界外企業、C は業界内企業です。

そこで私がやりたいのは、特定のパターン ABA または ACA を持つシーケンスを見つけることです。

この質問 ( Strange number of subsequences? ) を見て、ユーザー ガイド、特に次の文章を読んだ後:

4.3.3 部分列 列 u は、u のすべての連続する要素 ui が同じ順序で >x に現れる場合、x の部分列であり、単に u x で表します。この定義によれば、共有されていない > 状態は、シーケンス u と x の両方に共通する状態の間に現れる可能性があります。たとえば、u = S; M は x = S の > サブシーケンスです。う; M; MC。

7.3.2 特定のサブシーケンスを持つシーケンスの検索 seqpm() 関数は、特定のサブシーケンスを含むシーケンスの数をカウントし、それらの行インデックス番号を収集します。この関数は、2 つの要素を持つリストを返します。最初の要素である MTab は、データ内の特定のサブシーケンスの出現回数を示すテーブルです。サブシーケンスがシーケンス内で複数回出現する場合でも、シーケンスごとに 1 回の出現のみがカウントされることに注意してください。リストの 2 番目の要素である MIndex は、サブシーケンスを含むシーケンスの行インデックス番号を示します。これらのインデックス番号は、関連するシーケンスにアクセスするのに役立ちます (以下の例)。文字列内のパターンを検索する方が簡単であるため、関数 rst は、TRUE オプションを指定して seqconc 関数を使用する場合、この形式のシーケンス データを変換します。

私は、seqpm() が仕事を成し遂げるために必要な関数であると結論付けました。

だから私は次のようなシーケンスを持っています: AAAAABBBBBAAAAA

そして、メンティオッドソースで見つけたサブシーケンスの定義から、次を使用してそのようなシーケンスを見つけることができると思います。

seqpm(sequence,"ABA")

しかし、そうはなりません。その例のシーケンスを見つけるために、入力する必要があります

seqpm(sequence,"ABBBBBA")

これは私が必要とするものにはあまり役に立ちません。

  1. それで、私が何かを見逃したかもしれない場所がわかりますか?
  2. A から B に移動し、A に戻るすべてのシーケンスを取得するにはどうすればよいですか?
  3. A から他の何かに移動してから A に戻る方法を見つける方法はありますか?

どうもありがとう !

4

1 に答える 1