Piattaforma di capacità di processo: esiste un modo per specificare le distribuzioni utilizzate per Best Fit?CIAO. Mi chiedo se qualcuno conosce un modo per specificare quali distribuzioni vengono utilizzate quando si esegue Best Fit nella piattaforma Process Capability? Supponiamo, ad esempio, che un utente desideri analizzare un set di dati che sa essere non normale. Vorrebbero che JMP analizzasse utilizzando la distribuzione che si adatta meglio, ma sanno che vogliono scegliere solo tra Johnson o Gamma. La forma dello script sarebbe idealmente simile a:
dt = Open("$SAMPLE_DATA/Process Measurements.jmp");
dt <<PROCESS capability=""></PROCESS>Dove in Process Variables() ho inserito "...& Dist(Johnson, Gamma)" invece di "Dist(BestFit)". Naturalmente, il mio codice sopra non funziona e il risultato mostra solo Johnson, ma si spera che questo ti dia un'idea del tipo di cose che mi piacerebbe.
Utilizzo JMP Pro 17.2.0.
Grazie!
Automazione e scriptingRi: Process Capability Platform: esiste un modo per specificare le distribuzioni utilizzate per Best Fit?L'aggiunta manuale di Gamma a questa funzionalità e il salvataggio dello script mi hanno fornito la sintassi richiesta.
dt = Open("$SAMPLE_DATA/Process Measurements.jmp");
dt <<PROCESS capability=""></PROCESS>Ri: Process Capability Platform: esiste un modo per specificare le distribuzioni utilizzate per Best Fit?Se si desidera consentire a JMP di determinare quale distribuzione è la soluzione migliore e quindi eseguire la funzionalità di processo solo sulla distribuzione "più adatta", lo script seguente esegue prima una piattaforma di distribuzione e trova la soluzione migliore, quindi esegue la funzionalità di processo su la distribuzione più adatta.
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>
Ri: Process Capability Platform: esiste un modo per specificare le distribuzioni utilizzate per Best Fit?Grazie Jim.
Ottima idea, ma sfortunatamente potrebbe non essere un'opzione per me. I miei set di dati sono ~ 10k x 10k e ogni adattamento extra che eseguo su ciascuna colonna aumenta davvero il tempo di esecuzione. Quindi speravo di limitare la ricerca della soluzione migliore ad alcune distribuzioni ed escludere le altre.
Ri: Process Capability Platform: esiste un modo per specificare le distribuzioni utilizzate per Best Fit?Grazie @mmarchandTSI . Non sapevo di poter inserire più volte la stessa colonna in "Variabili di processo()". Questa potrebbe essere la risposta. Devo ancora valutare in qualche modo quale distribuzione sia la soluzione migliore, ma credo di poter catturare l'AICc da ciascuna distribuzione e utilizzarlo per determinare quella migliore. Sarà interessante vedere se questo è più veloce della semplice esecuzione di un "adattamento migliore" utilizzando tutte le distribuzioni.
Ri: Process Capability Platform: esiste un modo per specificare le distribuzioni utilizzate per Best Fit?Puoi facilmente limitare le distribuzioni da adattare quando utilizzi la piattaforma di distribuzione
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)
)
));