JSL pour évaluer l'intervalle de tolérance USL et LSL après calculSalut,
Je souhaite donc écrire un script qui calculera un intervalle de tolérance avec une couverture de 99 %, alpha = 0,95, sur une colonne de données.
Une fois cela fait, je souhaite accéder/évaluer l'USL et le LSL à utiliser pour masquer/exclure les valeurs qui se situent en dehors de ces limites.
La raison pour laquelle je fais cela est que j'ai deux colonnes de données que j'ai empilées ensemble et que je souhaite produire des diagrammes en boîte côte à côte.
Mais lorsque je les produis, il y a des valeurs aberrantes majeures dans les diagrammes en boîte qui entraînent une mauvaise mise à l'échelle des axes. Il n’y aura qu’une poignée de ces valeurs aberrantes majeures, donc je n’ai aucun problème à m’en débarrasser.
Je suis assez nouveau sur JMP, donc toute aide est appréciée. Si vous pensez qu'il existe un moyen meilleur/plus simple d'y parvenir, ce serait également formidable.
Re : JSL pour évaluer l'intervalle de tolérance USL et LSL après calculMerci! J'apprécie beaucoup l'aide! Désolé pour le retard dans l'acceptation de la réponse, je n'ai pas repris le travail sur le script jusqu'à aujourd'hui.Re : JSL pour évaluer l'intervalle de tolérance USL et LSL après calculIan est plus rapide que moi. Vous trouverez ci-dessous un script pour les données empilées.
Comme Ian le faisait allusion, vous devez en savoir plus sur JSL pour sélectionner et obtenir des valeurs à partir de tableaux et de rapports.Pour être préparé pour votre prochain script, vous devez lire les chapitres Aide> Livres> Guide de script "Plateformes de script" et "Arbres d'affichage". Cela vous aidera à comprendre la structure imbriquée des rapports JMP et à apprendre la syntaxe pour naviguer, référencer et obtenir.
Notez que le script de Ian vide les valeurs. Ce script conserve leurs valeurs, mais les exclut des analyses.
Names default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt_stck = dt << Stack(
columns( :height, :weight ),
Source Label Column( "Var" ),
Stacked Data Column( "Data" )
);
close(dt,NoSave);
obj = Distribution( Column( :Data ), By(:Var) );
//using a lower proportion, .80, to screen something
obj << Tolerance Interval( Alpha( 0.95 ), Proportion( 0.8 ) );
tol_dt = report(obj[1])[OutlineBox(2)]["Tolerance Intervals"][TableBox(1)]<<MAKE combined="" data="https://community.jmp.com/" table=""> vhi) ) << hide and exclude(1);
dt_stck << clear select;
);
nw = New Window("Custom Display",
VListBox(
onew = dt_stck << Oneway( Y(:Data), X(:Var)),
text box(),
dbb = tol_dt <<NEW data="https://community.jmp.com/" box=""></NEW></MAKE>Re : JSL pour évaluer l'intervalle de tolérance USL et LSL après calculOK Danny. Parfois, vous pouvez obtenir directement les valeurs requises, et parfois vous devez accéder à la couche de rapport pour les obtenir (essayez « Aide > Livres > Guide de script »).
Ce code devrait vous aider à démarrer :
NamesDefaultToHere(1);
// Do the Distribution
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dist = dt << Distribution( Column( :Height ) );
// Add tolerance intervals (search for the latter using 'Help > Scripting Guide')
dist << Tolerance Interval(Alpha( 0.95 ), Proportion( 0.85 ));
// Get the report layer
distRep = dist << Report;
// Dig out the required values (do 'Show Tree Structure' to see how the report is made up)
lt = distRep[NumberColBox(5)] << get;
ut = distRep[NumberColBox(6)] << get;
// Set extreme values to missing
vals = Column(dt, "Height") << getValues;
vals[Loc(vals < lt[1] | vals > ut[1] )] = .;
Column(dt, "Height") << setValues(vals);
Re : JSL pour évaluer l'intervalle de tolérance USL et LSL après calculSalut Ian, merci pour la réponse. Je sais écrire le script qui générera le rapport de distribution et calculera l'intervalle de tolérance. C'est la prochaine partie sur laquelle je suis bloqué. Lorsque JMP génère un script pour l'intervalle de tolérance, voici ce qu'il me donne :
Distribution(
Continuous Distribution(
Column( :Data ),
Tolerance Interval( Alpha( 0.95 ), Proportion( 0.99 ) )
)
)
Vous pouvez donc voir qu'à ce stade de mon script, je ne connais pas mon USL et mon LSL.J'ai besoin que mon script lise d'une manière ou d'une autre ce que sont les USL/LSL de l'intervalle de tolérance qu'il vient de calculer, puis exclue/supprime des lignes en conséquence.
Re : JSL pour évaluer l'intervalle de tolérance USL et LSL après calculNon, je souhaite utiliser les limites de tolérance comme limites de spécifications.
Re : JSL pour évaluer l'intervalle de tolérance USL et LSL après calculMême si vous souhaitez écrire un script, il est préférable de le faire manuellement une fois, d'autant plus que JMP génère souvent du code que vous pouvez utiliser.
Dans cet esprit, jetez un oeil ici pour voir comment obtenir les intervalles de tolérance via « Analyse > Distribution ». Une fois que vous avez ces valeurs, vous pouvez, par exemple, utiliser 'Rows > Row Selection > Select Where . . .', suivi de « Lignes > Supprimer les lignes ».
Re : JSL pour évaluer l'intervalle de tolérance USL et LSL après calculLes limites de tolérance et les limites de spécifications sont-elles différentes ?