問題タブ [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 - 時間の関数としての遷移率
私はしばらくの間、DB アイテムの遷移イベント (この議論の目的のための状態) の MySQL エクスポートを分析できるようにするパッケージを発見R
しました (フォーマットで)。TraMineR
TSE
10 個の状態があり、他の状態に遷移できます (つまり、特定の順序はありません)。
これまでのところ、このデータを に変換しSTS
、1 時間の基本時間単位を使用してseqtrate
関数を使用できるようにしました。これにより、各状態から他の状態への絶対遷移率が得られます (10x10 テーブル)。
私が問題を抱えているのは、遷移率を時間の関数として計算することです。これが再び 10x10 の表として表示されると想像していましたが、各セルの絶対値ではなく、異なる時間 (例: <24h, 24-72h, 72-168h, > 168h)。
time.varying
のオプションがありますがseqtrate
、時間単位ごとにレートが計算され、特定の時間枠を定義するオプションが表示されません。
使用することも考えましたが、SPS
これを行うための特定の機能が見つかりませんでした。
これを行うことができる別の機能はありますか?seqtrate
または、のtime.varying
オプションを使用して手動でコーディングする必要がありますか? 後者の場合は、正しい軌道に乗せていただけますか。どこから始めればよいかわかりません。
更新 (最初の 3 つの州で取得したいものを明確にするための単なる例)
r - 正確な日付の SPELL データの処理 (機能要求?)
私は TraMineR を学んでおり、さまざまな種類の経時データを使用しています。私の元のデータは、ID、開始時間、終了時間、およびステータスを含む SPELL データであり、開始時間と終了時間は正確な日付であるため、サブシーケンスの長さはさまざまです
seqformat() を使用すると、データを (自動的に) 1 年ごとに切り刻み、STS 形式に変換できます。ここで、最初の変数は最初の日付、2 番目の変数は最初の日付 + 1 年などです。
私がやりたいのは、変換を調整して、半年または 1 か月の期間を使用できるようにすることです。
ここでは、decimal.date() を使用して、日付を 10 進数の年に変換しました。
自動的に作成されるシーケンス オブジェクトには、1 年間のサブシーケンスのデータがあります。
したがって、日付を含むデータでは、1 年未満のサブシーケンス長も使用するオプションが必要です。seqgranularity() では逆のことが可能であることを理解しています。
または、特定の長さのサブシーケンスを作成するために SPELL データを処理するために、TraMineR の外部の R に何らかの方法があるかどうかを知りたいと思っています。
r - TraMineR の状態の最大数?
Web サイトのテキスト フィールドにユーザーが書き込んだテキストを含むデータ セットがあります。Web サイトの性質上、ほとんどのユーザーはフィールドに複数回書き込みました。パターンがあるかどうかを見てみたいと思います。たとえば、ある時点で「A」と書いたユーザーは、後で「B」と書くことになります。
グーグルで調べた後TraMineR
、この種の分析用のライブラリとして見つけました。しかし、TraMineR
and/or R は状態数に最大値を設定しているようです。これは本当ですか、それとも私は何か間違ったことをしていますか? 私の問題にアプローチする最良の方法は何ですか?
私のデータセットに関するいくつかの詳細情報:
- 百万を超えるテキスト入力のログがあります
- 約 90000 人の異なるユーザー
- 約 80000 の異なる入力 (イベント/状態?)
私のデータの状態シーケンス オブジェクトを作成するには、 (ここで説明されているようにseqe2stm()
)から使用する必要があります。私の数は80000 を超えています。関数を実行すると、次のエラーが表示されます。TraMineRextras
events
matrix(TRUE, nrow = nbstate, ncol = nevent) のエラー:
無効な 'nrow' 値 (大きすぎるか NA)
さらに: 警告メッセージ:
Matrix(TRUE, nrow = nbstate, ncol = nevent) 内:
強制によって導入された NA整数範囲へ
r - seqdist のメモリのボトルネック?
seqdist() にメモリのボトルネックがある可能性はありますか?
私は、64 GB の RAM を搭載した Windows x64 コンピュータでレジスタ データを扱う研究者です。私たちのデータは 60,000 人で構成されており、現在 SPELL 形式で約 220 万行のデータに取り組んでいます。seqdist を実行できません (method="OM", indel=1, sm="TRATE", with.missing=TRUE, full.matrix=FALSE)。エラー メッセージはここと同じです。一部は、メモリが十分に大きくないことを示しているようです:「負の長さのベクトルは許可されていません」。
わかりましたが、seqdist() は RAM 全体を使用していないようです。現在、私は 40,000 人のサンプルで実行しており、うまくいっているように見えますが、R は 2 GB 未満の RAM しか使用していません。60,000 人に対して seqdist() を実行すると、エラーが発生します。
どこかに 2^31-1 のサイズ制限があるのでしょうか?
病棟クラスターを計算すると、利用可能なすべての RAM が容易に利用されます。最大 40 GB の RAM を使用しましたが、これは少なくとも R が大量の RAM を利用できることを証明しています。
編集: ケースの最大数は正確に 46341 です。警告ですが、サイズが 46341 以下の場合はメモリを消費します。例:
entropy - エントロピーの大きさを解釈するための経験則
エントロピーの解釈について質問があります。データセット内の各人について、17 文字 (年) の長さの文字列/シーケンスがあります。この観測期間中にどの程度の変動が生じるかに特に関心があります。
R の TraMineR パッケージを使用して、シーケンス内エントロピーを計算することを考えています。これは正規化できるので、最大エントロピーは 1 (最小は 0 です) になります。私の質問は、エントロピーが高く、エントロピーが低いと言う経験則があるかどうかです(たとえば、相関係数の場合のように)。たとえば、0.4 は高い値ですか、低い値ですか?
ありがとう。
traminer - 特定のコホートが世代の最も頻度の高いサブシーケンスを計算する必要性を指定する
カテゴリ変数「世代」があります。を使用して各世代の最頻サブシーケンスを計算したいのですTraMineR
が、特定のコホートが必要であることを指定する方法がわかりません。私が知っているすべての可能な解決策を試しましたが、これまでのところ何もうまくいきませんでした。これは私が指定できないコードです:
r - R の TraMineR ライブラリによって作成されたシーケンス オブジェクトで id を参照するにはどうすればよいですか?
RI で TraMineR ライブラリを操作して、シーケンス オブジェクトを作成します。データの最初の列には、シーケンス定義で使用する ID が含まれています。
シーケンス オブジェクト (data.seq) の列の名前を見ると、"id" はリストされていません。シーケンス状態を含む列の名前だけです。data.seq オブジェクトで id を参照するにはどうすればよいですか?
この理由は、シーケンス オブジェクトの行をランダムに並べ替え、シーケンス オブジェクトから「id」を取得できるようにしたいからです。