Écran de valeurs aberrantes pour le PAT automobile (test de moyenne partielle)Salut l'équipe,
J'utilise la valeur aberrante Robust Fit - quartile, le résultat est pour l'écran haut et bas, moyenne +/- 6 K (Sigma).
Maintenant, je surveille uniquement la partie fuite. J'ai juste besoin de la valeur aberrante pour la moyenne + 6 K (Sigma).
S'il vous plaît dites-moi comment y parvenir à partir de JSL. Merci.
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 )} ) )
);Ingénierie Qualité et ProcédésRe : Écran aberrant pour le PAT automobile (test de moyenne des pièces)Ci-dessus j'ai pris soin de dire 'adapter cette approche'
. Sans parler au nom des autres, lorsque je publie des extraits JSL, mon intention est (généralement) d'encourager quelqu'un à comprendre le code et ensuite de pouvoir aller plus loin par lui-même.
Si vous changez sigma en 2, vous aurez vu qu'il n'y a que des cellules bleues dans le tableau (valeurs aberrantes du côté bas), et le code n'est pas assez général pour gérer cela et génère l'erreur que vous avez vue.
Veuillez trouver un script plus complet (non testé . . . ) qui devrait couvrir toutes les situations :
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 : Écran aberrant pour le PAT automobile (test de moyenne des pièces)Salut Ian,
Désolé pour la réponse tardive. Maintenant, j'ai JMP17 pour exécuter votre script. Aucune erreur comme vous l'avez mentionné. Il affiche respectivement la couleur rouge/bleu.
J'essaie de changer le sigma de 1 à 2,3,4,5,6 puis la même erreur a été trouvée.
Une idée de comment résoudre ça ?
Merci.
Re : Écran aberrant pour le PAT automobile (test de moyenne des pièces)Utiliser la coloration rouge et bleue n'est qu'un moyen indirect de contourner le fait que (à ma connaissance), il n'existe aucun moyen direct de demander à JMP d'effectuer un filtrage unilatéral (du côté haut ou bas, selon les besoins) .
Pour moi (en utilisant JMP 17.1 sur un Mac), le code posté ci-dessus ne génère pas d'erreur. Il imprime :
{25, 27, 30, 37, 39, 40}
au journal, et voici une liste des numéros de ligne contenant des valeurs aberrantes du côté haut (les cellules rouges du tableau).
Re : Écran aberrant pour le PAT automobile (test de moyenne des pièces)Salut Ian,
Merci pour votre réponse.
1. La valeur aberrante de Robust Fit s'applique aux deux sens. La formule ci-dessous consiste à marquer en rouge la ligne sur +1 sigma ou -1 sigma.
Je voudrais marquer la ligne avec +1 sigma uniquement.
eo << Robust Fit Outliers( K Sigma( 1 ), Huber( 0 ), Quartile( 1 ) );
2. Pour votre aide pour imprimer le collist, c'est vraiment ce que je recherche.
l'erreur que j'ai reçue était un objet non inscriptible lors de l'accès ou de l'évaluation de 'Arg (cs,1) [n]/*###*/1]', Arg(cs,1)[n]/*###*/ 1]'
Pouvez-vous s'il vous plaît le revoir à nouveau ? merci.
Re : Écran aberrant pour le PAT automobile (test de moyenne des pièces)J'ai fini par manipuler les expressions. S'il n'y a pas de meilleure solution, vous devriez pouvoir adapter cette approche :
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 : Écran aberrant pour le PAT automobile (test de moyenne des pièces)Salut,
Suivez mon dernier message, j'utilise la valeur aberrante d'ajustement robuste - la fonction par défaut consiste à filtrer les valeurs aberrantes hautes/basses, moyenne +/-6 sigma.
Pour certains éléments, il nous suffit de filtrer la valeur aberrante de la moyenne + 6 sigma (comme l'élément de fuite, faible est bon).
Quelqu'un peut-il me dire comment utiliser la valeur aberrante d'ajustement robuste pour la moyenne + 6 sigma uniquement ?
Merci