JMP でヒストグラムをオーバーレイする方法JMP でヒストグラムをオーバーレイするには、Distribution プラットフォームと Graph Builder プラットフォームを使用する 2 つの方法があります。 ヒストグラムを重ねて、2 つ以上の変数の分布間の類似点や差異を確認することができます。 ヒストグラムを重ね合わせると、個別に表示するよりも正確な方法で分布を比較できます。
Distributionを使用したヒストグラムの重ね合わせ
最初の方法では、配信プラットフォーム。 以下は、Car Physical Data.jmp サンプル データ テーブルを使用した例です。 この例では、ヒストグラムのオーバーレイに加えて、正規分布曲線もオーバーレイされます。 グラフに分布曲線を含めたくない場合は、関連する手順を無視してください。 合計 116 行ある Car Physical Data の構造は次のとおりです。

データテーブルから、[分析] > [分布] に移動します。 [Y, Columns] ボックスに 2 つの連続数値列 (変位と馬力など) を配置し、[OK] をクリックします。
出力は次のようになります (わかりやすくするために、分位数や要約統計量などのデフォルトの出力セクションの一部を削除しました)。

ヒストグラムが重ねてではなく並べて表示される場合は、[分布] の横にある赤い三角メニューをクリックし、[スタック] を選択すると、上の画像のようにヒストグラムが表示されます。 ヒストグラムが垂直形式で表示される場合は、各変数名の横にある赤い三角メニューをクリックし、[表示オプション] > [水平レイアウト] を選択します。 もう 1 つのオプションは、個々の赤い三角形のメニューをクリックするのではなく、Ctrl キーを押しながら 1 つの変数を変更することです。 これを行うと、変更が他のすべての変数にブロードキャストされます。
上で述べたように、各分布に正規曲線を当てはめ、それらの要素も重ね合わせます。
法線カーブを作成するには、Ctrl キーを押したまま、[ディスプレイスメント] の横にある赤い三角メニューをクリック (Mac では Command キーを押しながらクリック) します。 次に、[連続フィット] > [標準] を選択します。 以下に示すように、両方の変数の出力に適合正規分布が表示されます。

次に、各プロットの要素の色をカスタマイズして、最終結果で要素を区別できるようにします。 変位には赤を使用し、馬力には青を使用します。 変位ヒストグラム内で右クリックし、「カスタマイズ」を選択します。 表示されるウィンドウの項目リストで、「ヒストグラム」をクリックします。 塗りつぶしの色を赤に変更し、透明度を 0.5 に変更します (これにより、ヒストグラムが重なっている場所をより簡単に観察できるようになります)。 [グラフのカスタマイズ] ウィンドウは次のように表示されます。

ディスプレイスメントの場合、法線カーブはすでに赤色になっているため、その項目をカスタマイズする必要はありません。 「OK」をクリックしてウィンドウを閉じます。
ここで、前の手順を繰り返して、馬力ヒストグラムの色を青に、透明度を 0.5 に変更します。 法線曲線も青に変更したいので、法線項目をクリックし、線の色フィールドを青に変更します。 「OK」をクリックします。
出力は次のようになります。

次に、変位ヒストグラムと法線曲線を馬力プロットにコピーして、オーバーレイします。
これを行うには、まずディスプレイスメント ヒストグラム内で右クリックし、[編集] > [フレーム コンテンツのコピー] を選択します。 次に、馬力ヒストグラム グラフ内で右クリックし、[編集] > [フレーム コンテンツの貼り付け] を選択します。 両方の完全なヒストグラムを表示するには、ビュー内の軸範囲を調整する必要がある場合があります。 。
結果は、ヒストグラムと正規曲線の両方が 1 つのグラフに表示されます。

この方法では、自動凡例はありませんが、注釈を使用できます。テキストと線を追加するツール手動凡例に色付きの線要素を追加するツール。
これらのツールを実装した後の結果は次のようになります。

グラフビルダーを使用したヒストグラムの重ね合わせ
ヒストグラム (および分布曲線) をオーバーレイする 2 番目の方法では、グラフ ビルダー プラットフォームを使用します。
この方法では、すべての連続値が 1 つの列に収まるように、データがスタック形式である必要があります。 。 データをスタックするには、元の Car Physical Data テーブルから [テーブル] メニューに移動し、[スタック] を選択します。 [スタック列] ボックスに [変位] と [馬力] の両方を入力します。 「OK」をクリックします。
新しい積み上げデータ テーブルには、すべてのデータ値を含む Data という名前の列と、その値が Displacement 列と Horsepower 列のどちらからのものであるかを示す Label という名前の列があります。
積み上げデータ テーブルから、[グラフ] > [グラフ ビルダー] に移動します。 データを X ロールにドラッグし、ラベルをオーバーレイ ロールにドラッグします。 グラフ内で右クリックし、「ポイント」>「変更先」>「ヒストグラム」を選択します。
ここで、プロットが正しくスケールされていることを確認する必要があります。 Distribution プラットフォームのオーバーレイされたプロットに戻り、赤い三角メニュー > Histogram Options > Density Axis をクリックします。 この軸により、グラフ ビルダーの Y 軸がどうあるべきかがわかります。 ヒストグラムの右側に軸が表示されるので、それをダブルクリックして [軸の設定] ウィンドウを開きます。 この場合の最大値は 0.0117586 です。
次に、グラフ ビルダーの出力に戻り、データ列を Y にドラッグし、軸をダブルクリックして Y 軸設定を開きます。 最小値を 0 に、最大値を 0.0117586 に設定して、Distribution プラットフォームの密度軸を模倣します。 また、増分を 0.002 に設定し、「形式」セクションの「Dec (10 進数)」フィールドを 3 に設定します。
必要に応じて、X 軸をダブルクリックして軸設定ダイアログを開き、最小値、最大値、増分値をカスタマイズできます。この時点での結果は次のとおりです。

次に法線カーブを重ねていきます。 まず、Distribution プラットフォームの Displacement と Horsepower の両方に適用された近似正規分布からの平均値と標準偏差値を記録する必要があります。 これらの値は、Continuous Fit > Normal を選択した後の出力に与えられることを思い出してください。
以下の Distribution 出力の値 (赤で囲まれた部分) を思い出してください。

これらの値を記録したら、グラフ ビルダー プロット内で右クリックし、[カスタマイズ] を選択します。 + アイコンをクリックしてカスタム スクリプトを追加します。 各法線曲線に対して以下の構文を使用します。 Pen Color ステートメントは曲線の色を定義し、Y 関数は指定された mu パラメーターと sigma パラメーター (各変数の Distribution 出力から記録されたもの) を使用して標準密度曲線を描画します。
Pen Color( "<COLOR>" );
Y Function( normal density(x, mu, sigma), x );</COLOR>
上記の構文と、変位と馬力に適用される近似正規分布の (四捨五入された) ミュー値とシグマ値を使用して、カスタム スクリプト ウィンドウに次のテキストを入力します。
//Horsepower
Pen Color( "blue" );
Y Function( Normal Density( x, 130.198, 39.8225 ), x );
//Displacement
Pen Color( "red" );
Y Function( Normal Density( x, 158.31, 60.4088 ), x );
「OK」をクリックします。 結果は次のとおりです。

次に、いくつかのカスタマイズを行って、グラフを好みに合わせて完成させます。 私は、X 軸のラベルだけでなく、グラフのラベル、Y 軸のラベルも削除することを好みます。 各フィールドをダブルクリックし、削除キーを使用してテキストを削除します。 また、Y 軸に目盛りラベルを表示したくありません。 軸をダブルクリックして [Y 軸設定] を開き、ダイアログの [軸ラベル行] セクションで主目盛の [ラベル] チェックボックスをオフにします。 また、グラフ内の凡例を移動したいと考えています。 「グラフ ビルダー」の横にある赤い三角ボタンのメニューをクリックし、「凡例の位置」>「右の内側」を選択します。 最後に、より完全な画像を得るために、X 軸の範囲をわずかに拡張します。 X 軸設定を開き、最小値を 0、最大値を 400 に設定します。
最後に、[完了] ボタンをクリックすると、次のグラフが表示されます。

上記の例は、JMP の Distribution プラットフォームと Graph Builder プラットフォームという 2 つの方法を使用して、ヒストグラムと正規曲線をオーバーレイする方法を示しています。 必要に応じて、この例を一般化して、3 つ以上のヒストグラムと正規曲線をオーバーレイしたり、他の分布曲線をデータに当てはめたりすることができます。
この記事では、分布およびグラフ ビルダーを使用してヒストグラム (および分布曲線) をオーバーレイする 2 つの方法を説明します。
Re: JMP でヒストグラムをオーバーレイする方法こんにちは@DecileDromedary 、
以下は Big Class の例です。 私は別のアプローチを採用しました (よりテーブルベースで、JSL のスクリプト性が低い)。何らかの理由で、Integrate 関数の評価に永遠に時間がかかっていたため、データを標準化する必要がありました (どうやら、JMP が終了しないプロセス、つまり (応答なし) に入ってしまうようです)。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// New formula column: Standardize[height]
Data Table( "Big Class" ) << New Formula Column(
Operation( Category( "Distributional" ), "Standardize" ),
Columns( :height )
);
// New column: mean Std height by sex
Data Table( "Big Class" ) << New Column( "mean Std height by sex",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Col Mean( :"Standardize[height]"n, :sex ) )
);
// New column: stdev height by sex
Data Table( "Big Class" ) << New Column( "stdev Std height by sex",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Col Std Dev(:"Standardize[height]"n, :sex ) )
);
// → Data Table( "Big Class By (sex)" )
dt2 = Data Table( "Big Class" ) << Summary(
Group( :sex ),
Mean( :mean Std height by sex ),
Mean( :stdev Std height by sex ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" )
);
// Define curves and calculate overlap area
mean1 = dt2[1,3]; //female
stdev1 = dt2[1,4];
mean2 = dt2[2,3]; //male
stdev2 = dt2[2,4];
N1 = Expr(Normal Density(x, mean1, stdev1));
N2 = Expr(Normal Density(x, mean2, stdev2));
ovl = Integrate(Min(N1, N2), x, ., .);
Show(ovl);
//––––––––––
// Illustration
ym = xm = (-1000 :: 1000) / 100;
For(i = 1, i <= N Col(xm), i++,
ym[i] = Min(Normal Density(xm[i], mean1, stdev1), Normal Density(xm[i], mean2, stdev2))
);
New Window("Overlap Coefficient",
y = Graph Box(
Y Scale(0, 1),
X Scale(-5, 12),
Y Function(N1, x);
Y Function(N2, x);
Text({0, 0.6}, "OVL% = ", ovl*100);
Fill Color(1);
Polygon(xm, ym);
)
);
/*## ## ## */
// Close Data Table: Big Class By (sex)
Close( dt2, NoSave );
//hide Big Class
dt << Show Window(0);
それが役に立てば幸い!
PS ごめんなさい、見逃してしまいました。 今後は、よりタイムリーな回答を確実に得るために、一般的なディスカッション フォーラムに質問を投稿してください。質問にこの投稿へのリンクを含めることができます。非常に知識が豊富で経験豊富なユーザーからなるコミュニティが迅速にガイドしてくれるはずです ( JSL よりもさらに巧みに実行できます)。また、ライセンスを取得した JMP ユーザーの場合は、次の宛先に質問を送信することもできます。 support@jmp.com -- このような質問を含め、さまざまな状況でサポートを提供します。
乾杯、
@パトリックジュリアーノ(JMPテクニカルサポート)
Re: JMP でヒストグラムをオーバーレイする方法@パトリックジュリアーノ:
ovl 係数のスクリプトをデプロイしようとしています。 ランダムなデータで試してみたところ、見事に動作しました。 ありがとう。 しかし、次のステップとして、スクリプトに値を自動的に取り込むことを試みました。
Names Default To Here(1);
// Define curves and calculate overlap area
mean1 = 5.28;
stdev1 = 0.91;
mean2 = 8.45;
stdev2 = 1.36;
N1 = Expr(Normal Density(x, mean1, stdev1));
N2 = Expr(Normal Density(x, mean2, stdev2));
ovl = Integrate(Min(N1, N2), x, ., .);
Show(ovl);
スクリプトでmean1、Std dev 1とmean2、stdを読み取る必要があるだけです。 dev 2 を毎回手動でスクリプトに入力するのではなく、列から直接取得します。
私は多くの方法を試しました:
トライアル 1:平均=平均(カラム( dt 、 1 列)[ sel_rows ])
トライアル 2: Col Mean(名前, <変数別, ...>)
何か方法があるなら、教えてください。 ありがとう!
Re: JMP でヒストグラムをオーバーレイする方法こんにちは@DecileDromedaryどういたしまして! 残念ながら、JMP の最近の拡張ログ (JMP 16) とワークフロー ビルダー (JMP 17) を使用しても、このワークフローは (JMP で生成されたスクリプトで) 簡単に再現できるとは思えません。もちろん、これを JSL で最初からスクリプト化する方法もあるかもしれませんが、それはかなりの作業になります (ここでは範囲を超えています)。
あなたのリクエストに関するコメント(上記と同様)を以下に追加していただけますか?ウィッシュリスト役職?
https://community.jmp.com/t5/JMP-Wish-List/Support-for-overlaying-multiple-distributions/idi-p/359241
あなたの質問はそこで要求されているものと似ています。そこからスクリーンキャプチャを参照してください。 @sampton82 :

上記のようなプロットが Distribution または Fit Y by X に組み込まれている場合は、グラフ ビルダーで示したように、そのスクリプトをデータ テーブルに保存できます。
これは、JMP の将来のリリースでのグラフ ビルダーの機能拡張として、リクエストを検討するのに役立ちます。
Re: JMP でヒストグラムをオーバーレイする方法@パトリックジュリアーノこのようなものについては:

ありがとう!
Re: JMP でヒストグラムをオーバーレイする方法@パトリックジュリアーノどうもありがとう!、 グラフビルダーも使用することをお勧めします。
私の問題ステートメントと一致させるために、[分布] タブで生成した特徴、ヒストグラム、正規曲線と正規分位点プロットを保存したいと思いました。 フレーム内容をコピーし、色差のあるフレーム内容を貼り付ける手順の後。
再度、感謝します!
Re: JMP でヒストグラムをオーバーレイする方法こんにちは@DecileDromedaryもちろん! Graph Builder アプローチを使用すると、すべてのカスタマイズが完了した後、赤い三角ボタンのメニューに移動して、[スクリプトの保存] > [データ テーブルへ] を選択できます。

JMP はスクリプト (この例では「Data vs Data」という名前) を生成し、それをデータ テーブルに書き込みます。スクリプト名の横にある緑色の再生ボタンをクリックすると、左上隅にあるスクリプトにアクセスできます。

保存されたデータ テーブル スクリプトは次のようになります (これは JMP 17.1 で生成しました)。
Graph Builder(
Variables( X( :Data ), Y( :Data ), Overlay( :Label ) ),
Elements( Histogram( X, Y, Legend( 4 ), Response Scale( "Fill" ) ) ),
SendToReport(
Dispatch(
{},
"Data",
ScaleBox,
{Format( "Best", 12 ), Min( 4.68939393939394 ), Max( 365.833333333333 ),
Inc( 100 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"Data",
ScaleBox( 2 ),
{Format( "Fixed Dec", 12, 3 ), Min( 0 ), Max( 0.0107369299221357 ),
Inc( 0.002 ), Minor Ticks( 1 ), Label Row(
{Automatic Font Size( 0 ), Automatic Tick Marks( 0 ),
Label Orientation( "Horizontal" )}
)}
),
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Graphics Script(
5,
Description( "" ), //Horsepower
Pen Color( "blue" );
Y Function( Normal Density( x, 130.198, 39.8225 ), x );
//Displacement
Pen Color( "red" );
Y Function( Normal Density( x, 158.31, 60.4088 ), x );
), DispatchSeg( Hist Seg( 1 ), Bin Span( 4, 0 ) ),
DispatchSeg( Hist Seg( 2 ), Bin Span( 4, 0 ) )}
)
)
)
Re: JMP でヒストグラムをオーバーレイする方法ありがとう!色の違いを持たせて 2 つの正規分布を相互にオーバーレイするのは非常にうまくいきました。
機会があれば、これらの機能を備えたスクリプトをデータ テーブルに保存したいと思います。
出来ますか?
Re: JMP でヒストグラムをオーバーレイする方法こんにちは@XanGreggグレッグ、思い出させてくれてありがとうJMPウィッシュリスト, そこに追加します!
リクエストを要約すると、基本的には次のようになります。
1. JMP が単変量分析を実行し、[分析] > [分布] を使用してヒストグラム/概要統計を表示するのと非常に似た方法で、グラフ ビルダー プラットフォームで JMP を有効にして、少なくとも 2 つの分布をオーバーレイする、正規分布曲線を各分布に個別に当てはめる、 そして2 つの分布間の重複領域の割合を自動的に計算します。 。添付の画像を参照してください。

2.ユーザーコミュニティにはさまざまな優れた貢献があることに注意してくださいこの素晴らしい投稿に加えて、この方向で@セリグマン- このご厚意により@MS 、 https://community.jmp.com/t5/Discussions/is-there-a-way-to-find-the-area-common-to-two-Difference-normal/mp/86379/highlight/true#M38500ここでは、この操作を実行するために独自の JSL を作成しました。
便宜上、ここにスクリプトを添付します。最終的に、最も望ましいものは、上で説明したものと、以下の JSL で計算および図式的に示したものになります。
Names Default To Here(1);
// Define curves and calculate overlap area
mean1 = 5.28;
stdev1 = 0.91;
mean2 = 8.45;
stdev2 = 1.36;
N1 = Expr(Normal Density(x, mean1, stdev1));
N2 = Expr(Normal Density(x, mean2, stdev2));
ovl = Integrate(Min(N1, N2), x, ., .);
Show(ovl);
//––––––––––
// Illustration
ym = xm = (-1000 :: 1000) / 100;
For(i = 1, i <= N Col(xm), i++,
ym[i] = Min(Normal Density(xm[i], mean1, stdev1), Normal Density(xm[i], mean2, stdev2))
);
New Window("Overlap Coefficient",
y = Graph Box(
Y Scale(0, 1),
X Scale(-5, 12),
Y Function(N1, x);
Y Function(N2, x);
Text({0, 0.6}, "OVL% = ", ovl*100);
Fill Color(1);
Polygon(xm, ym);
)
);@スティーブンこれであなたもそれを完全に理解できたと思いますか?
Re: JMP でヒストグラムをオーバーレイする方法やあ、パトリック、
はいJMPウィッシュリスト他の人が参加できるようにするのは良い方法です。
このスレッドを追い始めたところなので、リクエストの内容を要約してもらえますか? Distribution でヒストグラムを重ね合わせたいという要望や、Graph Builder でさらに多くの診断/要約数値のオプションを求める要望が寄せられています。
Re: JMP でヒストグラムをオーバーレイする方法@スティーブン私も完全に同意します...十分に投票すれば法人化されるかも?JMP に切実に必要とされているもう 1 つの基本的な機能は、配布プラットフォームのヒストグラムのスケールを垂直 (水平ではなく) に自動変更して、実際に数字をはっきりと読み取ることができる機能です。Graph Builder は、あなたや私たちが話しているこの機能を実現するのに最適な場所だと思います。回帰関係をプロファイリングし、チェックボックスを使用して r 二乗や方程式などをオンにするオプションがある場合 (または別の例として箱ひげ図を使用した 4 つの数値の要約) と同様の方法で、これはグラフでも同様の機能になります。ビルダー。実際、グラフ ビルダーでは一般にヒソグラムのグラフ化が大幅に改善され、配布プラットフォームの視覚的な使いやすさをより忠実に再現できる可能性があります。分布グラフをグラフ ビルダーで作成する場合、私は常に Grabber ツールを使用して分布グラフのサイズを変更していることに気づきました。
@XanGreggこれについてはあなたの真似をします!本日は、2019 JMP ツーソン ディスカバリー サミットでお会いできて光栄です!(2019/10/18)
Re: JMP でヒストグラムをオーバーレイする方法私も、JMP で複数のディストリビューションの比較を自動化してほしいと思っています。これは、ウェハまたはアセンブリロットごとの半導体 IC テスト結果の中核的な比較であり、他の多くの企業でも同様のニーズがあると思います。Quantix では、これをドラッグ アンド ドロップで簡単に行うことができ、複数の上限と下限を設定することもできます。私がクリックしてクリックして比較を描いていると、ホールの向こうにいる同僚が私を笑いました。
Re: JMP でヒストグラムをオーバーレイする方法@セリグマンこれは素晴らしい!これすべてを共有してくれてありがとう。私は、これが統計発見の中核であると考えており、JMP の将来のリリースでは、これをより自動的な方法 (配布プラットフォームの一部またはグラフ ビルダー プラットフォームの一部として) に統合する必要があると考えています。Minitab などの他のソフトウェアを使用すると、マウスを数回クリックするだけでヒストグラムを重ねて密度を比較できます。
私は過去にグラフビルダーで同様のことを何度も行ってきましたが、常に多少の困難と多くのマウスクリックを伴いました。 カスタム スクリプトの実装と「フレームの内容をコピーして貼り付ける」というアイデアがとても気に入っています。
Re: JMP でヒストグラムをオーバーレイする方法どういたしまして、リルプサさん! サイトの担当者がアップグレードをお手伝いいたします。 サイトで v14 の注文がまだ処理されていない場合、サイト担当者は次の URL でアップグレードをリクエストできます。 www.jmp.com/upgrade 。
Re: JMP でヒストグラムをオーバーレイする方法ご返信いただき、また、私が単につまらない詳細を見逃しているだけではないことを確認していただき、誠にありがとうございます。サイトライセンスを持っています。まずは現場の人にver14.2にアップグレードできるか聞いてみます。ありがとう!
Re: JMP でヒストグラムをオーバーレイする方法こんにちは、リルプサさん
ご指摘いただきありがとうございます。 そのとおりです。JMP 11 のグラフ ビルダーのオーバーレイ ロールは、ヒストグラム要素の色を区別しません。 サイト ライセンスをお持ちの場合は、テクニカル サポート (support@jmp.com) までお問い合わせください。現在のバージョン JMP 14.2 へのアップグレードをお手伝いいたします。 JMP 11 のシングルユーザー ライセンスをお持ちの場合、これにはメジャー バージョンのアップグレードは含まれません。 その場合は、JMP営業部(877-594-6567)までお気軽にお問い合わせください。
Re: JMP でヒストグラムをオーバーレイする方法これは*まさに*やりたいことですが、残念ながら「グラフビルダー」オプションの指示は機能しません。
サンプル データ セットを取得し、指示に従って列を積み上げ、正確に従ったところ、「ラベル」列を「オーバーレイ」ロールにドラッグする指示に到達するまでは正常に動作しました。これを実行しても、グラフには何も変化がありません。ヒストグラムはまだ表示されていますが、すべてのデータはひとまとめにされており、著者のイラストのように 2 つの重ねられた色のグループに分離されていません。ここで何が起こっているのでしょうか?JMP 11.2.0を実行しています。
これはウィンドウのスクリーン キャプチャです。

ありがとう!