Skripterstellung – Wie wählt man die am besten geeignete Verteilung aus und erfasst Fähigkeitsparameter?Ich möchte ein Skript erstellen, das Folgendes tut:
1) Nehmen Sie einen Datensatz (jeweils eine Spalte)
2) Führen Sie eine kontinuierliche Anpassung für alle Verteilungen durch
3) Finden Sie die beste Passform, wenden Sie die Spezifikationsgrenzen an und analysieren Sie die Fähigkeitsparameter (insbesondere CpK).
4) Geben Sie den CpK (und wahrscheinlich auch andere Dinge) in eine Tabelle aus
Ich weiß, wie man das manuell macht, aber selbst nachdem ich es gemacht und ein Skript gespeichert habe, generiert das Skript nicht die gleiche Analyse, die ich ursprünglich durchgeführt habe. Wenn ich die Spezifikationsgrenzen innerhalb einer bestimmten Verteilung festlege (das rote Dreieck neben Normal 3 anstelle des Dreiecks der obersten Ebene), geht das im Skript vollständig verloren. Wenn ich sie auf der obersten Ebene einstelle, werden die Informationen gespeichert, aber ich habe 50–100 Datensätze, auf denen ich diese Analyse ausführen kann, und es handelt sich dabei um eine Reihe von Verteilungen. Ich brauche das Skript, um die BESTE Lösung zu finden, und führe dann diese Analyse durch.
Beispiel 1 unten ist ein Codeausschnitt, den ich gerade bearbeitet habe (noch nicht in eine Tabelle ausgegeben, aber zumindest die richtige Verteilung und Analyse erhalten), aber ich muss wissen, dass es sich bei den Daten um eine Normal-3-Mischung handelt. Wenn ich Beispiel 2 verwende, wird standardmäßig eine Normalverteilung verwendet, was falsch ist. Wenn ich herausfinden könnte, wie ich die beste Anpassung als Parameter auswerten kann, könnte ich sie in einer Schalterfunktion oder einer vergleichbaren Funktion verwenden, um die für jede Verteilung erforderliche Syntax einzurichten.
// Example 1 that gives meaningful results, but requires me to know the distribution
Distribution(
Column("Test Data"),
Fit Distribution (Normal Mixtures( Spec Limits( LSL( -1 ), USL( 1 ) ), Clusters( 3 ) )
)
);
// Example 2 gives garbage because it assumes the distribution is normal, and it's never normal
Distribution(
Column("Test Data"),
Fit Distribution ("All"), Capability Analysis ( LSL( -1 ), USL( 1 ) )
);Andere Hilfe bei der Ausgabe in eine Tabelle wäre auch toll. Dies ist mein erstes JMP-Skript und es fällt mir schwer, im Skripthandbuch klare Beispiele zu finden.
Betreff: Skripterstellung – Wie wähle ich die am besten geeignete Verteilung aus und erfasse Fähigkeitsparameter?Ich stimme Stephens Vorsicht zu.
Ich verstehe den Wunsch, die Langeweile bei der manuellen Durchführung einer solchen Analyse mithilfe eines Skripts zu verringern. Ein Skript ist eine perfekte Möglichkeit, JMP-Aktivitäten zu automatisieren.
Aber die Möglichkeit, alle Verteilungsmodelle gleichzeitig anzupassen und zu bewerten, ist für a gedacht explorativ Analyse. Sie können eine solche Untersuchung zu Beginn der Prozessentwicklung durchführen, wenn noch wenig über das Prozessverhalten bekannt ist. Andererseits ist die Durchführung einer Fähigkeitsstudie eine bestätigend Analyse, die spät in der Prozessentwicklung durchgeführt wird, wenn viel bekannt ist und sich am Prozess nichts ändert. Beispielsweise erfordert eine ordnungsgemäße Fähigkeitsanalyse, dass die Prozesskontrolle zumindest in Phase I nachgewiesen wurde.
Man kann das nicht wirklich automatisieren subjektive Entscheidung über das Verteilungsmodell bei der Verwendung objektive Methoden . Oder vielleicht sollte ich es so formulieren: „Nur weil du es kannst, heißt das nicht, dass du es solltest.“
Betreff: Skripterstellung – Wie wähle ich die am besten geeignete Verteilung aus und erfasse Fähigkeitsparameter?Ich würde bei der Verwendung der besten Anpassung vorsichtig sein, da die numerisch beste Anpassung nicht immer die logisch beste Anpassung ist. Nach meiner Erfahrung habe ich herausgefunden, dass die Verteilungsplattform zu stark passt. Ich habe beispielsweise vorgeschlagen, dass eine Normal-3-Mischung die beste Anpassung sei, aber basierend auf der Theorie, wie die Daten generiert werden, war eine logarithmische Normalanpassung am besten geeignet.
Es erfordert ein gewisses Maß an subjektiver Bewertung. Im obigen Beispiel waren die AICc-Werte für die exotischeren/komplexeren Anfälle nur geringfügig niedriger. Wenn viele der Spalten den gleichen Mechanismus zur Generierung der Daten verwenden, kann es sinnvoll sein, die beste Rangfolge aller dieser Spalten auszuwählen, indem die Ränge aller verschiedenen Spalten kombiniert werden.
Dies erfordert etwas mehr JSL, da Sie die Tabelle mit den besten Anpassungen für jede Spalte speichern, sie einordnen, vergleichen und dann die beste Anpassung über die Spalten hinweg extrahieren müssen.Betreff: Skripterstellung – Wie wähle ich die am besten geeignete Verteilung aus und erfasse Fähigkeitsparameter?Vielen Dank für die Hilfe, aber die Fähigkeitsanalyse basierte immer noch standardmäßig auf einer Normalverteilung. Sie haben mir jedoch noch einige andere Codierungsideen gegeben, wie ich mein Skript verbessern kann! Der Befehl „Umrissrahmen“ ist sehr nützlich.
Mithilfe der „Umrissbox“ konnte ich die Top-Anpassung aus der Tabelle „Verteilungen vergleichen“ analysieren und diesen Namen (Normal 3-Mischung) eingeben, um die Zeichenfolge zu erstellen, die für den für diese Verteilung erforderlichen Fähigkeitsanalyseaufruf erforderlich ist. Das ist NICHT elegant, aber es funktioniert bisher.
Danke.
Betreff: Scripting – Wie wähle ich die am besten geeignete Verteilung aus und sammle Fähigkeitsparameter?Hier ist ein Skript, das Ihnen einen guten Start ermöglichen sollte. Es führt Ihre gewünschten Aufgaben für eine einzelne Spalte aus
names default to here(1);
dt=open("$SAMPLE_DATA\big class.jmp");
// Set the limits for the target column
dt:height << set property("spec limits",{LSL(57),USL(68),show limits(1)});
// Run the Distribution Platform
dis=Distribution(
Continuous Distribution( Column( :height ), Fit Distribution( "All" ) ),
capability analysis(1)
);
// Point to the first capability analysis and create a data table from it
dtCpk = report(dis)[outline box(9)][1][3][1]<<MAKE data="https://community.jmp.com/" table=""></MAKE>