外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?まずデータ内の外れ値をフィルタリングし、次に Ppk を取得するために次の JSL を作成しましたが、すべての行を除外して外れ値をフィルタリングすると、他のプロセス パラメータの外れ値ではないデータ ポイントが除外されるため、スクリプトが間違っていることに気付きました。
外れ値を定義する場合、 私が好む基準は、Q1/Q3 +/- 1.5xIQR の外側にあるものはすべて外れ値であるというもので、以下ではこれが私が使用している基準です (そう思います)。
Names Default To Here (1);
Clear Log ();
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
col_names = dt << Get Column Group("Processes"); // Column Group should pre-exist.
obj = Explore Outliers(Y(Eval( col_names ) )); // Run expolore outliers
obj << Quantile Range Outliers( Tail Quantile( 0.25 ), Q (1.5) ); // select Q3/Q1 +/- 1.5 x IQR
obj << Exclude Rows(ALL); // exclude OL rows
// Run capability analysis
platform = dt << Process Capability(
Process Variables( Eval( col_names ) ),
Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Moving Range Method( Average of Moving Ranges ),
Overall Sigma Summary Report( 1 ),
//Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Select Out of Spec Values( 1 ),
Goal Plot(0 ),
Capability Index Plot( 1 ),
Process Performance Plot( 0 ),
Order By( "Within Sigma Ppk Ascending" )
);
Wait( 0 );
Report( platform )[Outline Box( "Process Capability" )][Outline Box( "Overall Sigma Capability Summary Report" )][Table Box( 1 )] <<
Make Into Data Table;
dt_curr = Current Data Table();
dt_curr << Set Name( "Capability Report" );パラメータごとに外れ値セルに色を付けることはできますが、能力分析でそれらを除外する方法がわかりません。助けが必要です。
次に、ロット内の各ウェーハについて、外れ値フィルタリング後の各プロセス パラメータの Cpk を計算し、各プロセス パラメータのウェーハ別の Cpk トレンド プロットを取得したいと思います。これを JSL で実行するにはどうすればよいですか (スクリプトで取得したサンプル データ セットを使用)?
自動化とスクリプトウィンドウズRe: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?私の質問の最初の部分(Ppk)については、
obj << Exclude Rows(ALL);
による
obj << Change to Missing(ALL);
仕事をする?
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?ワイド形式のテーブルがあるため、行を除外できるようにデータをスタックするか、欠損値コードを使用するか、データを変更するか、欠損値に変更する必要があります。
<< 不足に変更すると、目的の動作が実行されるかどうか試しましたか?

Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?@jthi交差したと思います。欠損値に変更すると、一部のパラメータの Ppk が負になります。これは想定内ですか?

Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?外れ値を含む単一の列を作成し、手動で (および JMP を使用して) Ppk を計算できるようにします。外れ値を欠損値に変更し、計算を繰り返します。正しいですか?
最初のパラメータを取ってそれがどのように見えるか確認すると

誰かが何らかの形でそれに反応すべきだと思います。負の能力値(平均が仕様外)がある理由も簡単にわかります。
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?@jthiありがとうございます。私の理解では、Ppk は負にはならないが Cpk は負になる可能性があるので、「欠損値に変更」の手順に疑問を抱いていました。理解を確認します。質問の 2 番目の部分に進む前にもう 1 つ質問があります。外れ値フィルタリング基準 (つまり、 Q1/Q3 +/- 1.5xIQRの外側をフィルタリング) を正しく適用していますか?
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?正しい場所さえ見つけられれば、JMP のドキュメントにはそのような質問に対する最良の回答が記載されています。しかし、それがかなり難しい場合もあります。
この場合は、おそらくここ「 予測および特殊モデリング > 外れ値の探索 > 外れ値の探索の概要 > 分位範囲外れ値」またはここ「予測および特殊モデリング > 外れ値の探索 > 外れ値の探索レポート > 分位範囲外れ値レポート」を参照してください。

Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?@jthiありがとうございます。質問の2番目の部分に移ります。
ロット内の各ウェーハについて、各プロセスパラメータのCpkを計算したい。外れ値フィルタリング後、各プロセスパラメータのウェーハごとの Cpk トレンド プロットを取得します。
したがって、これはデータ テーブル内のすべてのウェーハに対するパラメータの機能ではなく、特定のロット内の 1 つのウェーハに対するパラメータの機能です。
ここにある同じデータ セットで JSL 経由でこれを実行するにはどうすればよいですか?
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?変数をグループ化すると、必要に応じて:lot_id、:wafer、および/または:wafer in lotを使用してテーブルを取得できるのではないでしょうか。その後、そのテーブルからグラフを作成できます。
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?@jthiありがとう。
Names Default To Here (1);
Clear Log ();
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
col_names = dt << Get Column Group("Processes"); // Column Group should pre-exist.
obj = Explore Outliers(Y(Eval( col_names )),By( :Wafer ID in lot ID)); // Run expolore outliers
obj << Quantile Range Outliers( Tail Quantile( 0.25 ), Q (1.5) ); // select Q3/Q1 +/- 1.5 x IQR<BR />ウエハーを個別に扱う「外れ値プラットフォームの探索」ウィンドウが表示されます。その後、どのように使用すればよいでしょうか?
obj << Change to Missing(ALL);
次のステップ、つまり「ロット ID 内のウェーハ ID」ごとの機能分析に進むには?
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?問題なく動作すると思います。データに外れ値はありますか?
- より小さなデータセットを取得します(ロットID内のウェハIDはわずかです)
- 1つの列に外れ値をいくつか作成する
- スクリプトを実行する
- 動作を確認する
- より大きなデータで繰り返す
末尾の分位数を変更したことに注意してください
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
eo = dt << Explore Outliers(Y(Column Group("Processes")), By(:Wafer ID in lot ID), Invisible);
eo << Quantile Range Outliers(Tail Quantile(0.4), Q(1.5));
dt << Begin Data Update;
// eo << Color Cells(All);
Log Capture(eo << Change to Missing(ALL));
dt << End Data Update;
eo[1] << Close Window;Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?@jthiありがとうございます。分析にはより小さなデータ セットを使用しました (以下の JSL)。外れ値のセルはいずれにしても欠落しているため、ロット ID ベースでウェーハ IDの外れ値をフィルターする必要はないと思います。必要なのは、外れ値をフィルターしたデータ セットの能力分析です。
Names Default To Here( 1 );
Clear Log();
dt_full = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
dt = Data Table( "Semiconductor Capability" ) << Subset(
All rows,
columns( :lot_id, :wafer, :Wafer ID in lot ID, :SITE, :NPN1, :PNP2, :PNP3, :FNM1, :RES3, RSP2 )
);
Wait( 1 );
Close( dt_full, no save );
col_names = dt << Get Column Group( "Processes" ); // Column Group should pre-exist.
obj = Explore Outliers( Y( Eval( col_names ) ) );//,By( :Wafer ID in lot ID)); // Run expolore outliers
obj << Quantile Range Outliers( Tail Quantile( 0.25 ), Q( 1.5 ) ); // select Q3/Q1 +/- 1.5 x IQR
obj << Color Cells( ALL ); //check
Wait( 1 );
obj << Change to Missing( ALL );
Wait( 1 );
obj << Close Window;
// Run capability analysis
platform = dt << Process Capability(
Process Variables( Eval( col_names ) ),
Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Moving Range Method( Average of Moving Ranges ),
//Within Sigma Summary Report( 0),
Overall Sigma Summary Report( 1 ),
Select Out of Spec Values( 1 ),
Goal Plot( 0 ),
Capability Index Plot( 0 ),
Capability Box Plots( 0 ),
Process Performance Plot( 0 ),
Order By( "Overall Sigma Ppk Ascending" )
);
Wait( 0 );
Report( platform )[Outline Box( "Process Capability" )][Outline Box( "Overall Sigma Capability Summary Report" )][Table Box( 1 )] <<
Make Into Data Table;
dt_curr = Current Data Table();
dt_curr << Set Name( "Capability Report" );
platform << close window;
dt << Clear Select;
// Run capability analysis by wafer in a lot
platform2 = dt << Process Capability(
Process Variables( Eval( col_names ) ),
Spec Limits Dialog( "No (skip columns with no spec limits)" ),
Moving Range Method( Average of Moving Ranges ),
//Within Sigma Summary Report( 0),
Overall Sigma Summary Report(1),
Select Out of Spec Values( 1 ),
Goal Plot( 0 ),
Capability Index Plot( 0 ),
Capability Box Plots( 0 ),
Process Performance Plot( 0 ),
Order By( "Overall Sigma Ppk Ascending" ),
By( :Wafer ID in lot ID )
);
dt << Clear Select;
そこで、完全なデータ セットのパラメータごとの Ppk と、ロット ID ベースのウェーハ ID上の同じパラメータの能力を比較したいと思います。この目的のために、2 番目の能力分析から結合されたデータ テーブル (対話形式で実行可能) を作成するのに苦労しながら、以下のスクリプトを作成しました。
Report( platform2)[Outline Box( "Process Capability" )][Outline Box( "Overall Sigma Capability Summary Report" )][Table Box( 1 )] <<
Make Combined Data Table;
platform2 << close window;
最後に、ページ (グラフ ビルダー) のパラメータ名を含む結合データ テーブルから生成されたロット ID (x 軸) 内のウェーハ IDに対する機能 (y 軸) のプロットが必要です。また、最初の機能分析から計算された Ppk を各パラメータの水平線として表示する必要があります。この点について、ご助言をいただけないでしょうか。
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?結合されたデータ テーブルを作成しようとすると、どのような問題が発生しますか? platform2 に何が含まれているかを確認しましたか?
Names Default To Here(1);
dt_full = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
dt = Data Table("Semiconductor Capability") << Subset(All rows, Columns(:lot_id, :wafer, :Wafer ID in lot ID, :SITE, :NPN1, :PNP2, :PNP3, :FNM1, :RES3, RSP2));
Close(dt_full, no save);
col_names = dt << Get Column Group("Processes");
obj = dt << Explore Outliers(Y(Eval(col_names)));
obj << Quantile Range Outliers(Tail Quantile(0.25), Q(1.5));
obj << Change to Missing(ALL);
obj << Close Window;
// Run capability analysis
pc = dt << Process Capability(
Process Variables(Eval(col_names)),
Spec Limits Dialog("No (skip columns with no spec limits)"),
Moving Range Method(Average of Moving Ranges),
Overall Sigma Summary Report(1),
Select Out of Spec Values(1),
Goal Plot(0),
Capability Index Plot(0),
Capability Box Plots(0),
Process Performance Plot(0),
Order By("Overall Sigma Ppk Ascending"),
Invisible
);
dt_nogroup = Report(pc)[Outline Box("Process Capability")][Outline Box("Overall Sigma Capability Summary Report")][Table Box(1)] << Make Into Data Table;
dt_nogroup << Set Name("Capability Report");
pc << close window;
// Run capability analysis by wafer in a lot
pc = dt << Process Capability(
Process Variables(Eval(col_names)),
Spec Limits Dialog("No (skip columns with no spec limits)"),
Moving Range Method(Average of Moving Ranges),
Overall Sigma Summary Report(1),
Goal Plot(0),
Capability Index Plot(0),
Capability Box Plots(0),
Process Performance Plot(0),
Order By("Overall Sigma Ppk Ascending"),
By(:Wafer ID in lot ID),
Invisible
);
dt << Clear Select;
dt_wafer = (Report(pc[1]) << top parent)[Outline Box("Process Capability")][Outline Box("Overall Sigma Capability Summary Report")][Table Box(1)] << Make Combined Data Table;
pc << close window;
Write();
まず自分でグラフを作成してみる必要があります。「参照」Ppk 値を「データ」に結合し、それらを他のプロットの上にある追加の線グラフとして使用することをお勧めします。
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?@jthiありがとうございます。私は JMP 16.2 を使用しています。あなたのスクリプトを使用して結合されたデータ テーブルを取得しようとすると、次のメッセージが表示されます (私も同じです)

Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?私はもう JMP16 にアクセスできないので、自分で解決するか、他の誰かが介入する必要があります。私の記憶が正しければ、 JMP16 は By を使用するときにオブジェクトのリストを作成するのではなく、1 つのオブジェクトを作成します。そこから、正しいテーブル ボックスを見つける必要があります (正しい情報で最初に選択)。それに << Make Combined Data Table を送信できるはずです。
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?この方法はうまくいくでしょうか?
(pc << XPath( "//OutlineBox[text()='Process Capability']//TableBox" ))[1]
<< Make Combined Data Table;
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?@jthiありがとう。
@Mark_Baileyこれはうまくいく
dt_wafer = Report( pc[1] )[Outline Box( "Overall Sigma Capability Summary Report" )][Table Box( 1 )] <<MAKE combined="" data="https://community.jmp.com/" table=""></MAKE>
Next I would like to produce a chart similar to the one below (or even better with Parameters in the Page option of Graph Builder) with the overall Ppk calculated (in table Capability Report) from the first part of the script as horizontal dashed line on y-axis for each parameter. I do not know how to get y-axis values from one table and use it on a chart produced from a different table so need some help on the JSL here.
<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><span class="lia-inline-image-display-wrapper" image-alt="Neo_0-1722527733886.png" style="width: 721px;"><img src="https://us.v-cdn.net/6038925/uploads/images/66723i4C71FBE8A07B4359/Neo_0-1722527733886.png" width="721" height="351" role="button" title="Neo_0-1722527733886.png" alt="Neo_0-1722527733886.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN>
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?参照データの値を結合します。まず、「Ppk」列の名前を「Ppk Ref」などに変更し、次に更新を使用してプロセスと一致させます。

次にグラフを作成し、Y軸にPpkとPpk refの2つの列を追加します。ポイントからのPpk refとラインからのPpkを無効にします。

Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?@jthiありがとうございます。これでうまくいきました。最後に、水平線に隣接する y 軸に各プロセスの Ppk Ref 値を表示するにはどうすればよいでしょうか。
また、JSL を使用して、すべてのグラフの Y 軸のタイトルを共通のタイトル (たとえば、「Capability」) に変更するにはどうすればよいでしょうか。
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?新しいバージョンの JMP では非常に簡単で、行のラベルを有効にするだけです (これが JMP16 に既にあったかどうかはわかりません)。


JMP16 にそれが存在しない場合は、参照線を使用し、他のテーブルからの参照 Ppk からの更新をスキップします (代わりにそれらを連想配列に保存し、参照値を設定するときにそれを使用します)。
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?@jthiはい、ありがとうございます。JMP 16 でラベルを有効にする設定を見つけました。
2 番目の質問は、JSL を使用して、すべてのグラフの Y 軸タイトル (「ページ」経由) を共通のタイトル (「機能」など) に変更するにはどうすればよいでしょうか。
Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?私はXPathを使って正しい参照を見つけようとします。これはすべてのケースで機能するわけではなく、調整が必要になるかもしれません。
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(528, 2954),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Page(:age)),
Elements(Points(X, Y, Legend(15)), Smoother(X, Y, Legend(16)))
);
tebs = Report(gb) << XPath("//TextEditBox");
tebs[4::N Items(tebs)::2] << Set Text("Capability");Re: 外れ値フィルタリング後のパラメータごとの Ppk とパラメータごとのウェーハごとの Cpk を取得するにはどうすればよいですか?@jthi 。ありがとうございます。私は代わりに、チャートに必要な機能を備えた Wrap を選択しました。この場合、JSL で処理できる y 軸は 1 つだけです。