問題タブ [traminer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - サブセット メンバーシップの共起とグループ アルファベットの長さのカウント
シーケンス内の状態共起のパターンをカウントする方法、つまり、要素の順序が必ずしも重要ではないグループで作業する方法は R にありますか? 目的は、さらに長いグループ内でより大きなサブグループが発生する頻度を調べることです。
たとえば、入力データセットは次のようになります (「実際の」データ シーケンスは、幅が最大 10 列、深さが 1000 行になります) ...
そして結果はおそらく...
セットまたはクラスとして、出現回数を示すカウントを使用します。たとえば、* はサブセットまたは「別のメンバーシップ」カテゴリを示し、スコアは に基づいていlength()
ます。
結果も表示されます...
スコアが高いほど、より長く反映されlength()
ます。
そして最後に ...
カウント スコアは高くなりますが、スコアは低くなりlength()
ます。
順序付けられていない (無秩序な?) グループで動作する Traminer のようなものが優れています。計算負荷に問題がある可能性があることに注意しますが、プログラムを書くのに歯を磨く必要がある場合は、それを考慮します (つまり、ある種の自明性のしきい値)。
r - seqecmpgroup() 関数の出力形式は?
このseqecmpgroup()
関数は、特に、指定された各グループの度数を含むテーブルを返します。ただし、これを実行すると、1 未満の周波数が生成されます (例: 0.00035)。これらの頻度を、各サブシーケンスが発生するグループの数を示すパーセンテージとして解釈する必要がありますか?
以下に出力例を貼り付けました (各グループの周波数は「Freq.1」、「Freq.2」などとしてリストされています。
r - シーケンス内の特定のパターンを見つける
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
そして、メンティオッドソースで見つけたサブシーケンスの定義から、次を使用してそのようなシーケンスを見つけることができると思います。
しかし、そうはなりません。その例のシーケンスを見つけるために、入力する必要があります
これは私が必要とするものにはあまり役に立ちません。
- それで、私が何かを見逃したかもしれない場所がわかりますか?
- A から B に移動し、A に戻るすべてのシーケンスを取得するにはどうすればよいですか?
- A から他の何かに移動してから A に戻る方法を見つける方法はありますか?
どうもありがとう !
r - ステート シーケンスをイベント シーケンスに変換する
この質問は、実際には、私が自問したこの質問 (シーケンス内の特定のパターンを見つける)から生じましたが、それは別の問題だと思います。
Gilbert の回答に従って、状態シーケンスからイベント シーケンスを作成しようとしましたが、問題が発生しました。
提案は使用することでした
次に使用する
しかし、seqecreate() を使用しようとすると、次のエラーが発生します。
次を使用してイベントシーケンスに変換しようとすると、同じことが起こります。
行のサブセットを試してみて、どの行が問題を引き起こしているかを特定したところ、問題のある行はすべて一定の状態にあることがわかりました。つまり、実際には遷移がなく、永続的に同じ状態のままです (AAAAAA など)。
だから私の質問は:
- 変換を行うために設定できるフラグなどはありますか?
そうでない場合、長さが異なり、値が欠落している場合、これらの行を削除するにはどうすればよいですか。たとえば、次のようなシーケンスがある場合があります。
行方不明-行方不明-AAAA AA-行方不明-行方不明-行方不明
よろしくお願いします!
私のデータのサンプルを提供する:
comp.seq <- seqdef(comp,NULL,states=comp.scodes,labels=comp.labels, alphabet=comp.alphabet,missing="Z")
comp.seq[1:7,]
1 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-B-B-B-B-B-B-B-B-D-D-D-D-D-A-A-A-A-A-A-A-A-A
2 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-C-C-C-C-C-C-C-C-C-C-C-C-C-C-*-B-B-B-B-B-B-B-B-B-B-B-B-B-A-A-A-A-A-A
3 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-A-A-A-C-C-A-A-A-A-A-A-A-D-D-A-A-A-A-A-A-A-A
4 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-B-B-B-B-B-B-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A
5 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-C-C-D-D-D-D-D-D-D-D-D-D-A-A-A-A-A
6 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-B-B-B-B-B-B-B-B-B-B-B-B-B-D-D-D-D-D-D-D-D-A-A-A-A
7 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-A-A-A-A-A-A-A-A-A-A-A-A
行番号 7 は問題のある行です。私が使用しようとすると、seqecreate(comp.seq[1:6,])
それは動作します
r - 無効要素の圧倒的な分析にどう対処するか?
を使用して、長さが大きく異なるシーケンス データの分析を行っていTraMineR
ます。最終的に起こることは、シーケンスを等しく長くするために使用される void 要素 ( %
) が他のすべてを圧倒してしまうということです:
どうすればこの影響を回避できますか?
traminer - 非対称コスト行列はどのように機能しますか?
私はこの質問に答えようとしていましたトラミナーの交換費用
そして、行列が によってどの方向に処理されているのか、よくわからないことに気づきましたTraMineR
。たとえば、次の行列があるとしましょう
TraMineR
A->B コストが 2 であること、または B->A コストが 2であることを考慮するということですか?
ありがとう !
r - TraMineR と R ベース グラフを使用して、パターン塗りつぶしでグラフを作成することはできますか?
ここに画像の説明を入力してください1 2シーケンス分析の出版物や、一般的に多くのカテゴリ状態を持つグラフの出版物における一般的な問題は、白黒の紙の出版物に簡単に転送できないことです。Colorbrewerのように、十分な情報に基づいてグレー スケール カラーを決定するのに役立つツールがいくつかあります。それにもかかわらず、カラー パレットが 5 階調以上のグレーを超える場合、結果は満足のいくものではありません。したがって、これらの場合、特定のグラフ領域にパターン塗りつぶしを追加すると非常に役立ちます (ただし、これは有名な Edward Tufte によって推奨されていません)。
R ベース グラフィックスのパターン塗りつぶし機能またはベース グラフィックスの拡張機能を使用して、塗りつぶしパターンをTraMineR
グラフに追加することは可能でしょうか?
次に、シーケンス インデックス プロットの小さな例を示します。
r - 部分配列の同定の高速化
各シーケンスに数百のイベントがあるデータセットを使用しています。を使用して、サブシーケンスとシーケンシャル アソシエーション ルールを識別しようとしていますTraMineR
。たとえば、私が書くコードは次のとおりです。
これは、maxK を 1 ~ 3 に設定している限り、通常は実行可能ですが、その値を超えると、計算に数日ではなくても数時間かかります。これらの計算を高速化するために調整できる特定のパラメーターはありますか?