自動車用PATの外れ値スクリーニング(部品平均試験)こんにちは、チームです。
ロバストフィット外れ値 - 四分位を使用しています。結果は、高画面と低画面の両方で、平均 +/- 6 K(シグマ)です。
今は漏れ部分だけを見ています。 平均 + 6 K (シグマ) の外れ値が必要なだけです。
JSLからそれを実現する方法を教えてください。 ありがとう。
Explore Outliers(
Y(
:icc_aux10_total_vcc_1.000, :icc_aux10_VCCAUX10_vcc_1.000, :icc_aux18_total_vcc_1.000,
:icc_aux18_VCCAUX18_vcc_1.000, :icc_core_total_vcc_1.050, :icc_core_VCC_vcc_1.050,
:icc_core_lp_total_vcc_1.000, :icc_core_lp_VCC_vcc_1.000, :iccio_b_total_vcc_1.000,
:iccio_b_VCCIOB_vcc_1.000, :iccio_ltr_total_vcc_1.000, :iccio_ltr_VCCIOLTR_vcc_1.000
),
Robust Fit Outliers( K Sigma( 6 ), Huber( 0 ), Quartile( 1 ) ),
SendToReport( Dispatch( {}, "Commands", OutlineBox, {Close( 0 )} ) )
);品質およびプロセスエンジニアリングRe: 自動車用 PAT の外れ値スクリーニング(部品平均テスト)上記では、「このアプローチを適応する」と注意して言いました
。 他の人を代弁するわけではありませんが、JSL スニペットを投稿するときの私の目的は、(通常は) 誰かがコードを理解して、自分でさらに先に進むことができるように奨励することです。
シグマを 2 に変更すると、テーブルには青色のセル (下位側の外れ値) しかないことがわかりますが、コードはこれを処理できるほど一般的ではなく、先ほどのエラーが生成されます。
すべての状況をカバーする、より完全な (テストされていない) スクリプトを見つけてください。
NamesDefaultToHere(1);
// Sample data
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Explore outliers
eo = dt << Explore Outliers(Y( :height ));
eo << Robust Fit Outliers( K Sigma( 2 ), Huber( 0 ), Quartile( 1 ) );
eo << obj << Color Cells( :height ); // Blue (red) cells are 'low' ('high')
// Get the column script
colScript = :height << getScript;
// Initialise lists (which may or may not be updated by the subsequent code)
redRowList = {};
blueRowList = {};
// Find the location of the sub-expression 'Color Cells'. if there are no outliers, 'colorCellsExist' will be 0
subExpr = {};
for(i=1, i<=NArg(colScript), i++, InsertInto(subExpr, Head(Arg(colScript, i))));
colorCellsExist = Contains(subExpr, Expr(Color Cells));
// Find the row numbwrs of any high (red) cells or low (blue) cells (red is '35', blue is '37'):
// Need to handle situations in which there are only high outliers, only low outliers, both high and low
// outliers, or no outliers
if(
colorCellsExist,
// Get the 'Color Cells' expression in the column script
cs = Arg(colScript, colorCellsExist);
if(
// If 'cs' is a list of lists, we have both high and low outliers . . .
IsList(Arg(cs, 1)[1]),
for(i=1, i<=NItems(Arg(cs, 1)), i++,
if(
(Arg(cs, 1)[i])[1] == 35, redRowList = (Arg(cs, 1)[i])[2];
(Arg(cs, 1)[i])[1] == 37, blueRowList = (Arg(cs, 1)[i])[2];
);
);
,
// . . . or if 'cs' is not a list of lists, we have either high or low outliers (but not both)
if(
Arg(cs, 1)[1] == 35, redRowList = Arg(cs, 1)[2],
Arg(cs, 1)[1] == 37, blueRowList = Arg(cs, 1)[2]
);
);
);
Print("High: "||Char(redRowList)||" Low: "||Char(blueRowList));
Re: 自動車用 PAT の外れ値スクリーニング(部品平均テスト)こんにちは、イアンさん
返事が遅れて申し訳ありません。 これで、JMP17 にスクリプトを実行できるようになりました。 あなたが言ったようにエラーはありません。 それぞれ赤/青の色を示します。
シグマを 1 から 2、3、4、5、6 に変更しようとすると、同じエラーが見つかりました。
それを修正する方法はありますか?
ありがとう。
Re: 自動車用 PAT の外れ値スクリーニング(部品平均テスト)赤と青のカラーリングを使用することは、(私の知る限り) JMP に一方的なスクリーニング (必要に応じて高い側または低い側で) を依頼する直接的な方法はないという事実を回避する間接的な方法にすぎません。 。
私 (Mac で JMP 17.1 を使用) の場合、上記のコードではエラーは発生しません。 出力されます:
{25、27、30、37、39、40}
これは、高い側 (表の赤いセル) に異常値を含む行番号のリストです。
Re: 自動車用 PAT の外れ値スクリーニング(部品平均テスト)こんにちは、イアンさん
お返事をありがとうございます。
1. ロバストフィット外れ値は両方向のもので、以下の式は +1 sigma または -1 sigma の範囲外の行を赤色でマークします。
行に +1 シグマのみをマークしたいと思います。
eo << Robust Fit Outliers( K Sigma( 1 ), Huber( 0 ), Quartile( 1 ) );
2. コリストを印刷するのに協力してください。これは私が本当に探しているものです。
私が受け取ったエラーは、「Arg (cs,1) [n]/*###*/1]'、Arg(cs,1)[n]/*###*/ のアクセスまたは評価でオブジェクトに添字を付けることができません」でした。 1]'
もう一度見直していただけますか?ありがとう。
Re: 自動車用 PAT の外れ値スクリーニング(部品平均テスト)結局表現を加工してしまいました。 これより良い方法がない場合は、このアプローチを適応できるはずです。
NamesDefaultToHere(1);
// Sample data
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Explore outliers
eo = dt << Explore Outliers(Y( :height ));
eo << Robust Fit Outliers( K Sigma( 1 ), Huber( 0 ), Quartile( 1 ) );
eo << obj << Color Cells( :height ); // Blue (red) cells are 'low' ('high')
// Get the row numbers of the red cells . . .
// (1) Get the column script
colScript = :height << getScript;
// (2) Find the 'Color Cells' expression in the column script
n = 1;
While(Head(Arg(colScript, n)) != Expr(Color Cells), n++);
cs = Arg(colScript, n);
// (3) Find the row numbwrs of the red cells (red is '35')
n = 1;
While((Arg(cs, 1)[n])[1] != 35, n++);
redRowList = (Arg(cs, 1)[n])[2];
Print(redRowList);Re: 自動車用 PAT の外れ値スクリーニング(部品平均テスト)こんにちは、
前回の投稿に従って、私はロバストフィット外れ値を使用しています。デフォルトの関数は、高/低外れ値、平均+/-6シグマをスクリーニングすることです。
項目によっては、平均 + 6 シグマから外れ値をスクリーニングするだけで済みます (漏れ項目のように、低いことが良いです)。
誰かが平均値 + 6 シグマのみにロバストフィット外れ値を使用する方法を教えてもらえますか?
ありがとう