8 つの因子と 4 つの応答を持つモデルがあります。 どの応答に対してどの要因が重要であるかを示すヒート マップを作成したいと考えています。たとえば、独自のカラー スケールを定義できるようにしたいと考えています。
<0.0001 ~ 0.01 = オレンジ
0.001 ~ 0.05 = 赤
> 0.05 = 白
グラフビルダーでグラデーションを試してみましたが、やりたいことを行う方法がわかりません。 おそらくこれは技術的にはもはやグラデーションですらないかもしれませんが、それは可能であるはずだと思われます。下の画像は私が得たものに近いものです。

これがスクリプトの一部です。 保存されたスクリプトを含む完全なデータセットが添付されています。
gradient(
{Color Theme( "Green Yellow Red" ), Scale Values( [0 0.05 .] ),
Width( 9 ), Range Type( "Exact Data Range" ),
Reverse Gradient( 1 ), Discrete Colors( 1 ),
N Labels( 5 )}
)
ご提案をいただければ幸いです。
-トム
すごいですね、トムさん、詳しい説明ありがとうございます!
こんにちは、キラさん
ご協力いただきありがとうございます。それは私が行こうとしていた場所に到達するのに本当に役立ちました。
JMP ドキュメントには詳細が見つからなかったので、同様のことを試みている他の人のために、これを行う方法についてもう少し詳しく追加します。
ヒート マップの凡例を右クリックし、[グラデーション] を選択し、[カラー テーマ]、[ツイスティ] の順にクリックして、[カスタム カラー テーマ] を開きます。これが私にとって最終的にうまくいったセットアップです。

ここでは、0、10、50、100% の勾配を定義する点が 4 つだけであるように見えますが、そうではありません。これら 4 つの点のみを定義すると、その間のグラデーション、たとえば 0 ~ 10% の赤からオレンジが得られます。 赤からオレンジに 10% で段階的に変化させたい場合は、赤とオレンジの両方のポイントを 10% で定義する必要があります。意図されていない目的で使用しているため、UI にはマーカーが 1 つだけ表示されます。
3 つの目立たない色の範囲を取得するには、6 つの点を定義する必要がありますが、上では重なっているため 4 つしか見えません。上記の視覚化は役立ちますが、事後に, スライダーを動かして目的のものを取得するために使用することはできませんでした。 直接スクリプトを作成する必要がありました。 私のコードは次のようになりました。
{Color Theme(
{"White to Red p-Value", 2051,
/*0%->red 10%->red 10%->orange 50%->orange 50%->white 100%->white */
{{255,0,0},{255,0,0},{255,165,0},{255,165,0},{255,255,255},{255,255,255}},
{.0000 , 0.1 , 0.1 , 0.5 , 0.5 , 1 }
}Kira が指摘したように、スケール係数を正しく設定することが重要です。 カラーテーマの値は 0 ~ 1 (定義されたスケールの 0 ~ 100%) です。スケール係数は、カラー スケールを特定の変数 (私の場合は 0 から 0.1) に「マッピング」します。
連続データを取得して、それをグラデーションではなくカラー ステップにマッピングしたい場合は他にも考えられます。そのため、JMP でこれを行うためのより良い方法があるか、単に設定が不足しているだけかもしれません。 (私も、Kira が提案した方法で新しい列を作成しました。これも間違いなく合理的な選択肢です。)
最終的な出力は次のようになり、各セルに F 比率が表示されます。

添付ファイルにはオリジナルのデータセットが含まれています。 最初のスクリプトはモデルを実行します。 2 つ目はレポートに進み、p 値と f 比を抽出し、ヒート マップを作成します。ヒート マップ スクリプトを「賢く」作成して、レポート内のどこにある「Effects Test」テーブルも見つけられるようにするために、レポート ツリー構造のナビゲーションについて十分に理解できていればよかったと思います。現状では、これはハードコードされているため、スクリプトはおそらくこの特定のレポートでのみ機能します。
dt_pvals = report(fls)[outlinebox(1)][TableBox(6)] << make combined data table;
これは、複数の要因と応答を扱う場合に役立つ視覚化ツールになると思います。
-トム
こんにちはトム!
JMP では独自のカラーテーマを定義できます。 次のようなことを試してください。
Preferences( Add Color Theme(
{"White to Red p-Value", 2051, {{255, 255, 255}, {255, 255, 255}, {252, 187,
161}, {252, 146, 114}, {251, 106, 74}, {239, 59, 44}, {203, 24, 29}, {165,
15, 21}, {103, 0, 13}}, {0, 0.95, 0.96,
0.97, 0.98, 0.99, 0.995,
0.999, 1}}
),
);色は RGB 値でコード化され (例: {255, 255, 255} は白)、関心のある増分は最後に指定されます (例: 現在定義されているように、カラー スケールの最初の 95% が白になります)。 これは最初の下書きなので、必要に応じて増分や色を変更する必要があるかもしれません。 これにより、任意のグラフで使用できる新しいカラー テーマが作成されることに注意してください。 グラフには、カラー スケールの「最小」と「最大」を必ず含めてください。そうでないと、このグラデーションは 0.05 からオレンジになりません。
gradient(
{Color Theme(
{"White to Red p-Value", 2051, {{255, 255, 255}, {255,
255, 255}, {252, 187, 161}, {252, 146, 114}, {251, 106,
74}, {239, 59, 44}, {203, 24, 29}, {165, 15, 21}, {103,
0, 13}}, {0, 0.95, 0.96, 0.97, 0.98, 0.99, 0.995, 0.999,
1}}
), Scale Values( [0 1] ), Reverse Labels( 1 )}
)ただし、統計学者からの余談です。実際には、p 値がしきい値 (たとえば、0.05) を下回ると、p 値がどれほど小さいかは関係ありません。 あなたが関心を持つべき唯一のことは、それが有意であるか (たとえば、0.05 未満) かどうかです。 したがって、p 値が 0.05 未満であるかどうかを示し、それによって色付けする単純な数式列は、アプリケーションにはまったく問題ありません。
お役に立てば幸いです!
キラ