Process Capability Platform : existe-t-il un moyen de spécifier les distributions utilisées pour Best Fit ?Salut. Je me demande si quelqu'un connaît un moyen de spécifier quelles distributions sont utilisées lors de l'exécution du meilleur ajustement dans la plate-forme Process Capability ? Par exemple, supposons qu’un utilisateur souhaite analyser un ensemble de données dont il sait qu’il est anormal. Ils aimeraient que JMP analyse en utilisant la distribution qui correspond le mieux, mais ils savent qu'ils veulent qu'il choisisse uniquement parmi Johnson ou Gamma. La forme du script ressemblerait idéalement à :
dt = Open("$SAMPLE_DATA/Process Measurements.jmp");
dt <<PROCESS capability=""></PROCESS>Où dans Process Variables(), j'ai mis "...& Dist(Johnson, Gamma)" au lieu de "Dist(BestFit)". Bien sûr, mon code ci-dessus ne fonctionne pas et le résultat montre uniquement Johnson, mais j'espère que cela vous donne une idée du genre de chose que j'aimerais.
J'utilise JMP Pro 17.2.0.
Merci!
Automatisation et scriptsRe : Process Capability Platform : existe-t-il un moyen de spécifier les distributions utilisées pour le meilleur ajustement ?L'ajout manuel de Gamma à cette fonctionnalité et l'enregistrement du script m'ont donné la syntaxe requise.
dt = Open("$SAMPLE_DATA/Process Measurements.jmp");
dt <<PROCESS capability=""></PROCESS>Re : Process Capability Platform : existe-t-il un moyen de spécifier les distributions utilisées pour le meilleur ajustement ?Si vous souhaitez laisser JMP déterminer quelle distribution est la mieux adaptée, puis exécuter la fonctionnalité de processus uniquement sur la distribution « la mieux adaptée », le script ci-dessous exécute d'abord une plate-forme de distribution et trouve la meilleure solution, puis exécute la fonctionnalité de processus sur la distribution la mieux adaptée.
Names default to here(1);
dt =
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// Run
dis = Distribution(invisible,
Continuous Distribution(
Column( :PNP3 ),
Fit Normal( Show Fit( 0 ) ),
Fit Cauchy( Show Fit( 0 ) ),
Fit Student's t( Show Fit( 0 ) ),
Fit Lognormal,
Fit Exponential( Show Fit( 0 ) ),
Fit Gamma( Show Fit( 0 ) ),
Fit Johnson( Show Fit( 0 ) ),
Fit SHASH( Show Fit( 0 ) ),
Fit Normal 2 Mixture( Show Fit( 0 ) ),
Fit Normal 3 Mixture( Show Fit( 0 ) ),
Fit Weibull( Show Fit( 0 ) ),
Process Capability( Use Column Property Specs )
)
);
fitList = report(dis)["Compare Distributions", stringcolbox(1)]<<GET></GET>
Re : Process Capability Platform : existe-t-il un moyen de spécifier les distributions utilisées pour le meilleur ajustement ?Merci Jim.
Excellente idée, mais malheureusement, ce n'est peut-être pas une option pour moi. Mes ensembles de données font ~ 10 000 x 10 000 et chaque ajustement supplémentaire que j'exécute sur chaque colonne augmente vraiment le temps d'exécution. J'avais donc espéré limiter la recherche du meilleur ajustement à quelques distributions et exclure les autres.
Re : Process Capability Platform : existe-t-il un moyen de spécifier les distributions utilisées pour le meilleur ajustement ?Merci @mmarchandTSI . Je ne savais pas que je pouvais mettre plusieurs fois la même colonne dans les "Variables de processus ()". Cela pourrait être la réponse. J'ai encore besoin d'évaluer d'une manière ou d'une autre quelle distribution est la mieux adaptée, mais je pense que je peux capturer l'AICc de chaque distribution et l'utiliser pour déterminer la meilleure. Il sera intéressant de voir si cela est plus rapide que de simplement exécuter un "meilleur ajustement" en utilisant toutes les distributions.
Re : Process Capability Platform : existe-t-il un moyen de spécifier les distributions utilisées pour le meilleur ajustement ?Vous pouvez facilement limiter les distributions à adapter lorsque vous utilisez la plateforme de distribution
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Process Measurements.jmp");
dist = dt << Distribution(
Continuous Distribution(
Column(:Process 1),
Fit Gamma,
Fit Johnson,
Process Capability(0)
),
Invisible /*can use private in JMP17 I think*/
);
dists = Report(dist)[OutlineBox("Compare Distributions"), Table Box(1), String Col Box(1)] << get;
dist_to_use = dists[1];
wait(0);
dist << Close Window;
dist_expr = Parse("Dist("||Word(1, dist_to_use)||")");
Eval(EvalExpr(
pc = dt << Process Capability(
Process Variables(:Process 1 & Expr(Name Expr(dist_expr))),
Moving Range Method(Average of Moving Ranges),
Capability Box Plots(1),
Individual Detail Reports(0),
Capability Index Plot(1)
)
));