バブルプロットが「レベルを横切る」エラー<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
アニメーションバブルプロットを作成しようとしていますが、いくつか問題があります。
各行には、'state'、'step'、'time'、および 'id'があります。IDは一連の行に対して一意です(状態が異なる場合、ステップ1から10まで)。
私のデータ行は変数 'time'を持っています。いくつかのIDは他のIDと異なる時間を持ちます。場合によっては時間も重なります。1つの「ID」には、同じ時間に複数の「ステップ」または「状態」があります。
時間列をより大きな間隔にビン分割すると、バブルプロットが開始されて機能しますが、ビンのサイズを十分大きくした場合に限ります。ただし、ログに次のエラーが表示されます。
ID列 'singleID'は、カテゴリ軸の列 'Step'とレベルを交差します。IDを 'Step'に変更しますか?
ID列 'singleID'はカテゴリ型軸列 'State'とレベルを交差します。IDを「州」に変更しますか?
何度も時間を設定しないと、バブルプロットが完全に開始されず、JMPからIDを他の列に置き換えるように求められます。辞退すると、バブルプロットは起動されず、次のエラーが表示されます。
ID列 'singleID'は、カテゴリ軸の列 'Step'とレベルを交差します。IDを 'Step'に変更しますか?
ID列 'singleID'はカテゴリ型軸列 'State'とレベルを交差します。IDを「州」に変更しますか?
DisplayBox []
Bubble Plot(Bubble Plot)のアクセスまたは評価に十分なメモリを割り当てられません(Bubble Plot(
ダイアログを起動します。
X(:ステップ)
Y(:州)、
時間(:binTimeCentred)
着色(:停止状態)
ID(:シングルID)
)
例を含めず、オンラインで投稿できる例を用意してくれたことをお詫び申し上げます。したがって、説明だけでこの問題を解決する方法について誰かが何か考えているかどうかを望みました。
ベスト、
再:バブルプロットは「レベルを横切る」エラートランを視覚化する面白い方法ダン。各チェーンの最後の状態をX軸に置くことも強力です。他の分析から、私は、いくつかの州が特定の最終州に決して導くことがない(あるいは常につながる)ことを発見しました。このようなビジュアライゼーションは、選択を他のプラットフォームに転送することと組み合わせると非常にうまく機能します。
観測されたすべてのチェーンを一度に視覚化する方法を試しています。行の状態とその前の状態(:statepath)をすべて含む列をサンプルのデータセットに含め、行の状態に基づいて色を割り当て、行ラベルをstateにしました。この情報は、すべての可能性のあるチェーンのツリー構造に似たものを作成するために使用できます。この情報を表示するには、積み上げ棒グラフを使用します。each:ステップはバーで、バーの各セグメントはツリーのその「ブランチ」内の状態です。グラフは左から右に読むことができます。1ステップの小節の各セグメントは分割されて、次の小節の複数のセグメントになります(:step)。上部のX軸の「表示レベル」の数を変更すると、グラフ内を移動できます。
フィードバックを提供すること自由に感じなさい。

グラフビルダー (
サイズ ( 1142 、 591 ) 、
コントロールパネルを表示 ( 0 ) 、
凡例を表示 ( 0 ) 、
変数 ( Y ( : キー ) 、グループX ( : ステップ ) 、オーバーレイ ( : ステートパス ) ) 、
要素 (
バー (
Y 、
伝説 ( 5 ) 、
バースタイル ( 「積み上げ」 ) 、
要約統計 ( "N" ) 、
ラベル ( 「行ラベル」 )
)
)) ;
再:バブルプロットは「レベルを横切る」エラーデータを要約するための興味深い方法は、「前の状態」列を追加することです。
データ表 ( 「バブルプロット試験データ」 ) << 新しいコラム ( 「前の状態」 、
データ・タイプ ( キャラクター ) 、
式 ( 左 ( 右 ( : ステートパス 、 4 ) 、 2 ) ) 、
プロパティを設定 ( 値ラベル 、 Arg ( : 状態 << 物件を取得する ( 値ラベル ) 、 1 ) ) 、
プロパティを設定 ( 値の順序 、 : 状態 << 物件を取得する ( 値の順序 ) )
) ;
この追加された列により、Graph Builderヒートマップは各遷移の頻度を表示します。
グラフビルダー (
コントロールパネルを表示 ( 0 ) 、
変数 ( バツ ( : 前の状態 ) 、 Y ( : 状態 ) ) 、
要素 ( ヒートマップ ( バツ 、 Y 、伝説 ( 3 ) ) ) 、
ローカルデータフィルタ (
ロケーション ( { 642 、 61 } ) 、
モード ( 選択する ( 0 ) 、見せる ( 1 ) 、含める ( 1 ) ) 、
フィルタを追加 (
コラム ( : 状態 ) 、
どこで ( : 状態 == { "01" 、 "02" 、 「03」 、 "10" 、 "11" 、 「12」 、 「20」 、 「21」 、 "22" 、 "30" } ) 、
表示 ( : 状態 、サイズ ( 204 、 174 ) 、リスト表示 )
)
)
) ;
ローカルデータフィルタを使用して、"00"(欠損)状態への遷移を除外しました。 セルを一時停止すると、ホバーツールチップに一致するトランジションの数が表示されます。

このビューを他のプラットフォームと組み合わせて使用して、特定のトランジションを選択して強調表示することができます。
再:バブルプロットは「レベルを横切る」エラー丹念に答えてくれてありがとう。あなたの代わりのアプローチは興味深く、ビニング時間に関連したメモリ使用量に関するあなたの説明は非常に役に立ちました。ビニングがこの状況での解決策であることを知っておくことは良いことですが、それはいくつかの遷移の視覚化を失うことを意味します。
ありがとうございます。
再:バブルプロットは「レベルを横切る」エラーこんにちは
データとサンプルスクリプトをありがとう - あなたが見ているケースを見ることは非常に役に立ちます。 問題について:
- メモリ - アニメーションを実行するために、バブルプロットはそれぞれのユニークな時間に各バブルの位置を保存します。 250k行のうち、欠落していない83kの時間値があり、そのうち5kを超える値はユニークです。 それぞれのバブルは10ステップしか持続しないので、5kの時間値はかなりの量のメモリを必要とします(私のマシンでは7.7GB、あなたのビンの例では1.5GB)。
- 上記を考慮すると、ビニングは完全に意味があります。 ID間の集計は行われないため、バブルを失うことはありませんが、ビンサイズ内で非常に短時間で発生する状態遷移を確認することはできません。
- 対話的な使用のために「レベルを越える」ダイアログを避ける方法はありませんが、スクリプトから実行されるとき、メッセージは単に中断することなくログに書き込まれます。
時間アニメーションがそれほど重要ではない場合は、他のプラットフォームが役に立つかもしれません。 この例では、Overlayロールを持つGraph Builder Line要素を使用して、すべての遷移を一度に表示します。
グラフビルダー (
コントロールパネルを表示 ( 0 ) 、
変数 ( バツ ( : ステップ ) 、 Y ( : 状態 ) 、オーバーレイ ( : 一意のID ) ) 、
要素 (
ライン ( バツ 、 Y 、伝説 ( 3 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
) ;

このグラフ内で、線の一部をドラッグして選択すると、同じIDを持つすべての行が選択されます。
単一行にすべての状態遷移を含めるようにデータを変形すると、次のようになります。
データ表 ( 「バブルプロット試験データ」 ) << スプリット (
分割する ( : ステップ ) 、
スプリット ( : 状態 ) 、
グループ ( : 一意のID )
)
そうすれば、Parallel Plotプラットフォームを使って同様のビューを見ることができます。 このプラットフォームでは、右クリック> [カスタマイズ]をクリックして、ポリラインの透明度を0.01のように設定できます。 これにより、より一般的なトランジションが暗くなり、あまり一般的ではないトランジションが薄くなる陰影付きビューが得られます。 任意の線でセグメントを選択すると、強調表示されます。

並列プロット (
均一にスケール ( 0 ) 、
中央ゼロ ( 0 ) 、
Y (
: 名 ( 「1」 ) 、
: 名 ( 「2」 ) 、
: 名 ( 「3」 ) 、
: 名 ( 「4」 ) 、
: 名 ( 「5」 ) 、
: 名 ( 「6」 ) 、
: 名 ( "7" ) 、
: 名 ( "8" 、
: 名 ( 「9」 ) 、
: 名 ( "10" )
) 、
SendToReport (
ディスパッチ (
{} 、
「パラレルコード」 、
FrameBox 、
{ フレームサイズ ( 633 、 420 ) 、 DispatchSeg (
ポリラインセグメント ( 1 ) 、
{ 透明度 ( 0.01 )}
)}
)
)
) ;
これらのアイデアが参考になれば幸いです。
- ダン
再:バブルプロットは「レベルを横切る」エラーこんにちはダン、
お返事ありがとうございます。各ID(:uniqueID)に複数の行がありますが、これらは異なるX軸値(:Step)と時間値(:starttimestateまたは(:binTimeCentred))の両方に対応しています。IDのポイントは他のパラメータを横切って1つのバブルをたどることなので、なぜこれが問題と見なされるのでしょうか。しかし、おそらく私は何かが足りないのです。いくつかのデータを含めました。ところで、私は32ビットバージョン(11.1.1)を使うことに縛られているので、それはおそらくメモリの問題にも役立たないでしょう。
私のデータは、シミュレーション(:Key)の複製中に発生する状態の連鎖(シーケンス)を表しています。1つのキーに対して複数の連鎖が存在する可能性があります。それはチェーンと呼ばれるもので状態はいくつかのステップ(:ステップ)でお互いに続きます。チェーン内の新しい各ステップは、前の状態とは異なる状態であり、瞬間的に発生します(:StartTimestate)。これにより、約255種類のステップの組み合わせ(:ID)が作成されます。しかし、合計で約25000のチェーンが観測されています(:uniqueID)。各チェーンには常に10ステップありますが、データが欠落している可能性があります。
私が達成しようとしているのは、チェーンが「状態」と「時間」の次元でどのように振る舞うかを視覚化することです。各チェーンのバブル(:UniqueID)が時間の経過とともにステップ(x軸)をどのように移動し、その状態(y軸)がどのように変化するかを示します。その結果、バブルは常に左から右に移動します(:step)が、上下に異なる動作(:state)を示すバブルチャートになります。これはかなり大きな多次元データセットのパターンを視覚化する楽しい方法になると思います。スクリプトはユーザーインターフェイスで使用されるので、警告が表示されないようにします。:starttimestate変数を時間として使用すると素晴らしいでしょうが、これは 'メモリ'エラーを引き起こします。(かなり大きい)時間間隔(:binttimecentred)を使用しても問題ありませんが、これはIDの数を変更しないため、問題なく使用できます。
「クロスレベル」エラーを抑制する方法についての任意の考えは歓迎されています
再度、感謝します!
スクリプト:
データテーブル( "バブルプロットテストデータ")<<バブルプロット(
X(:ステップ)
Y(:州)、
時間(:binTimeCentred)
着色(:停止状態)
ID(:UniqueID)
バブルサイズ(15.24)
タイムインデックス(2.5)、
オリエントシェイプ(1)
ラベル( "なし")、
トレイルライン( "選択")、
形状を設定( "トライアングル")、
役職(8、5.11)、
SendToReport(
ディスパッチ(
{}、
"1"、
ScaleBox、
{最小(-0.5)、最大(9.5)、Inc(1)、副ティック(0)}
、
ディスパッチ(
{}、
"2"、
ScaleBox、
{最小(-0.5)、最大(10.5)、Inc(1)、小ティック(0)}
)
)
;
再:バブルプロットは「レベルを横切る」エラーこんにちは
「クロスレベル」エラーは単なる警告です。多くの場合、顧客が期待したものではありません。
カテゴリカル軸があり、同じIDを持つ2つの行が軸上の異なる値に対応する場合、問題はバブルをどこに配置するかです。変数を変更しなくても機能するはずですが、グラフから値を読み取ることはより困難です。 X = "North Carolina"のバブルが実際にNorth Carolinaからの観測値を表しているのか、それともX = "Virginia"とX = "South Carolina"の2つのバブルの集合を表しているのかは不明です。 「平均化」は単純にカテゴリカル列の値の順序に基づいているため、任意の組み合わせが可能です。
あなたの記憶問題は(IDの数)x(回数)に関連していると思います。 ごく一部の時間のデータしか含まないIDがたくさんある場合は、ストレージの必要量が予想よりも大きくなる可能性があります。 データセットを共有したり、データの特性についてさらにコメントしたりできる場合は、これが問題であることを確認できます。
- ダン
再:バブルプロットは「レベルを横切る」エラーこんにちは、
私はあなたが持つかもしれないどんな提案にでもまだ興味があるでしょう。多分、JMPのプロの1人は「十字架レベル」エラーの重要性についてコメントできるかもしれません、それは利用可能なドキュメントのどれにも言及されていないからです。「十分なメモリを割り当てることができませんでした」というメッセージも表示されるので、これらはバブルプロットで使用できるデータ量の制限と思われます。それとも、入力データのエラーによって発生する可能性がありますか。残念ながら、バブルプロットの例で使用されているサンプルデータでエラーを再現することはできませんでした。動的バブルプロットの例 )
ベスト、