Process Capability Platform: Gibt es eine Möglichkeit, die für Best Fit verwendeten Verteilungen anzugeben?Hallo. Ich frage mich, ob jemand eine Möglichkeit kennt, anzugeben, welche Verteilungen verwendet werden, wenn Best Fit in der Process Capability-Plattform durchgeführt wird? Angenommen, ein Benutzer möchte einen Datensatz analysieren, von dem er weiß, dass er nicht normal ist. Sie möchten, dass JMP die Analyse anhand der Verteilung durchführt, die am besten passt, wissen aber, dass nur Johnson oder Gamma ausgewählt werden sollen. Die Skriptform hierfür würde idealerweise so aussehen:
dt = Open("$SAMPLE_DATA/Process Measurements.jmp");
dt <<PROCESS capability=""></PROCESS>Wo ich in den Prozessvariablen() „...& Dist(Johnson, Gamma)“ anstelle von „Dist(BestFit)“ eingefügt habe. Natürlich funktioniert mein Code oben nicht und das Ergebnis zeigt nur Johnson, aber das gibt Ihnen hoffentlich eine Vorstellung davon, was ich gerne hätte.
Ich verwende JMP Pro 17.2.0.
Danke!
Automatisierung und SkripterstellungBetreff: Process Capability Platform: Gibt es eine Möglichkeit, die für Best Fit verwendeten Verteilungen anzugeben?Durch manuelles Hinzufügen von Gamma zu dieser Funktion und Speichern des Skripts erhielt ich die erforderliche Syntax.
dt = Open("$SAMPLE_DATA/Process Measurements.jmp");
dt <<PROCESS capability=""></PROCESS>Betreff: Process Capability Platform: Gibt es eine Möglichkeit, die für Best Fit verwendeten Verteilungen anzugeben?Wenn Sie möchten, dass JMP ermittelt, welche Verteilung am besten passt, und dann die Prozessfähigkeit nur auf der „am besten passenden“ Verteilung ausführen, führt das folgende Skript zunächst eine Verteilungsplattform aus, findet die beste Passform und führt dann die Prozessfähigkeit auf dieser aus die optimale Verteilung.
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>
Betreff: Process Capability Platform: Gibt es eine Möglichkeit, die für Best Fit verwendeten Verteilungen anzugeben?Danke, Jim.
Tolle Idee, aber leider kommt das für mich vielleicht nicht in Frage. Meine Datensätze sind ca. 10.000 x 10.000 groß und jede zusätzliche Anpassung, die ich für jede Spalte durchführe, erhöht die Laufzeit wirklich. Daher hatte ich gehofft, die Suche nach der besten Lösung auf einige wenige Distributionen zu beschränken und die anderen auszuschließen.
Betreff: Process Capability Platform: Gibt es eine Möglichkeit, die für Best Fit verwendeten Verteilungen anzugeben?Danke @mmarchandTSI . Mir war nicht bewusst, dass ich dieselbe Spalte mehrmals in die „Prozessvariablen()“ einfügen könnte. Das könnte die Antwort sein. Ich muss immer noch irgendwie beurteilen, welche Verteilung am besten passt, aber ich glaube, dass ich den AICc von jedem Dist erfassen und damit die beste Verteilung ermitteln kann. Es wird interessant sein zu sehen, ob dies schneller ist, als nur einen „Best Fit“ unter Verwendung aller Distributionen durchzuführen.
Betreff: Process Capability Platform: Gibt es eine Möglichkeit, die für Best Fit verwendeten Verteilungen anzugeben?Wenn Sie die Distributionsplattform verwenden, können Sie ganz einfach einschränken, welche Distributionen passen
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)
)
));