Bonjour.
J'utilise l'analyse de capabilité des processus pour générer des graphiques pour mes rapports.
L'un des tableaux récapitulatifs concerne les « non-conformités », qui peuvent également servir à représenter le taux de défaillance.
Je souhaite générer un tableau affichant directement les valeurs de rendement, sans avoir à les interpréter à partir du tableau des non-performances. Est-il possible d'y parvenir directement avec les options par défaut de JMP ?
Créez une colonne de formule qui calcule les rendements pour les paramètres qui vous intéressent.
Si (paramètre dans la spécification) alors rendement = 1 sinon rendement = 0
Créez ensuite un tableau récapitulatif qui calcule la moyenne des colonnes de rendement.
Merci. J'espérais éviter de créer manuellement une colonne de rendement, mais il semble que ce soit la seule solution. Ce n'est pas exactement ce que je cherchais, mais c'est simple et direct.
L'utilisation d'un tableau de données est la solution la plus simple, mais si vous êtes prêt à utiliser du JSL, vous pouvez modifier le bloc du tableau de non-conformité pour y inclure également le rendement (cela peut paraître étrange) ou ajouter un bloc contour et un tableau séparés pour la conformité (leur placement peut être fastidieux).
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
obj = dt << Process Capability(
Process Variables(:PNP1),
Individual Detail Reports(1),
{:PNP1 << Process Capability Analysis(Nonconformance(1))}
);
tb = Report(obj)["Nonconformance", TableBox(1)];
obsperc = tb[Number Col Box("Observed %")] << get as matrix;
yieldperc = J(3, 1, 100) - obsperc;
(Report(obj)["Nonconformance", TableBox(1)]) << Append(
Number Col Box("Yield %", yieldperc, << Set Format("Fixed Dec", 9, 4))
);

En fait, cette question revient souvent, donc cela sera utile à beaucoup de personnes.
Le script vous invitera à sélectionner les colonnes possédant une propriété « spec ». Assurez-vous donc que cette propriété est bien définie avant l'exécution. Il génère également un graphique récapitulant les taux de conformité pour chaque colonne, classés par variables de regroupement.
Names Default To Here( 1 );
dt = Current Data Table();
dlg = Column Dialog(
spec_cols = ColList( "Spec Columns", MinCol( 1 ), MaxCol( 1000 ) ),
group_cols = ColList( "Group Columns", MinCol( 1 ), MaxCol( 20 ) )
);
If( dlg["Button"] != 1,
Beep();
Throw();
);
col_list = dlg["spec_cols"];
group_list = dlg["group_cols"];
for (i=1, i <= nitems(col_list), i++,
col_name = col_list[i] << Get Name;
specproperty = col_list[i] << Get Property( "Spec limits" );
if( (contains(char(specproperty), "LSL") > 0) & (contains(char(specproperty), "USL") > 0),
Eval(Eval Expr(
dt << New Column( col_name || " In Spec", Numeric, "Continuous", Format( "Best", 12 ),
Formula(if((Expr(col_list[i]) > Expr(specproperty["LSL"])) & (Expr(col_list[i]) < Expr(specproperty["USL"])), 1, 0 )))
));
);
if( (contains(char(specproperty), "LSL") == 0) & (contains(char(specproperty), "USL") > 0),
Eval(Eval Expr(
dt << New Column( col_name || " In Spec", Numeric, "Continuous", Format( "Best", 12 ),
Formula(if(Expr(col_list[i]) < Expr(specproperty["USL"]), 1, 0 )))
));
);
if( (contains(char(specproperty), "LSL") > 0) & (contains(char(specproperty), "USL") == 0),
Eval(Eval Expr(
dt << New Column( col_name || " In Spec", Numeric, "Continuous", Format( "Best", 12 ),
Formula(if(Expr(col_list[i]) > Expr(specproperty["LSL"]), 1, 0 )))
));
);
);
cols = dt << Get Column Names();
inspec_cols = {};
for (i=1, i <= nitems(cols), i++,
if (Contains(cols[i], "In Spec"),
Insert Into(inspec_cols, cols[i])
);
);
dt << Group Columns("In Spec Cols", inspec_cols);
dt_inspec_stack = dt << Stack(
columns( Column Group( "In Spec Cols" ) ),
Source Label Column( "Spec Columns" ),
Stacked Data Column( "In Spec" ),
Drop All Other Columns( 1 ),
"Non-stacked columns"n( Keep( group_list ) ),
Output Table("Stack of In Spec Columns")
);
summary_group = {};
for (i=1, i <= nitems(group_list), i++,
col_name = group_list[i] << Get Name;
Insert Into(summary_group, col_name);
);
Insert Into(summary_group,"Spec Columns");
dt_inspec_summary = dt_inspec_stack << Summary(
Group( summary_group ),
Mean( :In Spec ),
Freq( "None" ),
Weight( "None" ),
output table name(
"Summary of In Spec Columns"
)
);
dt_inspec_summary << New Column("CI", Numeric, "Continuous", Format("Best",12),
Formula(Root( (:"Mean(In Spec)"n * (1 - :"Mean(In Spec)"n)) / :N Rows ) * 1.96)
);
dt_inspec_summary << Graph Builder(
Size( 1280, 720 ),
Show Control Panel( 0 ),
Variables(
X( :Spec Columns ),
Y( :"Mean(In Spec)"n ),
Group X( :Reactor ),
Interval( :CI )
),
Elements(
Points( X, Y, Legend( 5 ), Error Interval( "Custom Interval" ) ),
Line( X, Y, Legend( 6 ) )
),
SendToReport(
Dispatch( {}, "Mean(In Spec)", ScaleBox,
{Format( "Percent", 12, 0 ), Min( 0 ), Inc( 0.2 ), Minor Ticks( 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch( {}, "Graph Builder", FrameBox, {Reference Line Order( 3 )} ),
Dispatch( {}, "Graph Builder", FrameBox( 2 ), {Reference Line Order( 3 )} ),
Dispatch( {}, "Graph Builder", FrameBox( 3 ), {Reference Line Order( 3 )} )
)
);
Bonjour,
Ce sont toutes d'excellentes réponses, mais je souhaitais également vous informer qu'à partir de JMP 19, une nouvelle option est disponible dans la plateforme « Capabilité des processus » et dans l'analyse de la capabilité des processus de la plateforme « Distribution ». Cette option permet d'enregistrer automatiquement les colonnes du tableau de données contenant les formules des indicateurs de conformité. Consultez la documentation JMP ici : Enregistrer les formules des indicateurs de conformité.
Vous trouverez cette option dans la plateforme Process Capability, sous le menu déroulant « Enregistrer les options » du triangle rouge.

Dans le rapport d'analyse de la capacité des processus de la plateforme de distribution, vous trouverez cette option dans le menu triangulaire rouge « Capacité des processus ».

Une fois que vous avez les formules des indicateurs de conformité, elles sont faciles à analyser et à manipuler. J'espère que cela vous sera utile.
Laura
Merci de l'avoir signalé, @Laura_Lancaster . Ce serait très utile d'avoir cette option disponible également dans le contrôle des processus, ainsi qu'une colonne indiquant le taux global de conformité prenant en compte toutes les colonnes d'indicateurs de conformité.