Plataforma de capacidad de proceso: ¿Existe alguna forma de especificar las distribuciones utilizadas para Best Fit?Hola. Me pregunto si alguien conoce una forma de especificar qué distribuciones se utilizan al realizar Best Fit en la plataforma Process Capability. Por ejemplo, supongamos que un usuario quiere analizar un conjunto de datos que sabe que no es normal. Les gustaría que JMP analizara utilizando la distribución que mejor se ajuste, pero saben que quieren que solo elija entre Johnson o Gamma. Lo ideal sería que la forma de guión de esto fuera la siguiente:
dt = Open("$SAMPLE_DATA/Process Measurements.jmp");
dt <<PROCESS capability=""></PROCESS>Donde en las Variables de proceso(), puse "...& Dist(Johnson, Gamma)" en lugar de "Dist(BestFit)". Por supuesto, mi código anterior no funciona y el resultado muestra solo a Johnson, pero espero que esto le dé una idea del tipo de cosas que me gustaría.
Estoy ejecutando JMP Pro 17.2.0.
¡Gracias!
Automatización y secuencias de comandosRe: Plataforma de capacidad de proceso: ¿Existe alguna forma de especificar las distribuciones utilizadas para Best Fit?Agregar manualmente Gamma a esta capacidad y guardar el script me dio la sintaxis requerida.
dt = Open("$SAMPLE_DATA/Process Measurements.jmp");
dt <<PROCESS capability=""></PROCESS>Re: Plataforma de capacidad de proceso: ¿Existe alguna manera de especificar las distribuciones utilizadas para Best Fit?Si desea permitir que JMP determine qué distribución es la más adecuada y luego solo ejecute la Capacidad de proceso en la distribución que mejor se ajuste, el siguiente script primero ejecuta una Plataforma de distribución y encuentra la mejor opción, y luego ejecuta la Capacidad de proceso en la distribución de mejor ajuste.
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: Plataforma de capacidad de proceso: ¿Existe alguna forma de especificar las distribuciones utilizadas para Best Fit?Gracias Jim.
Gran idea, pero lamentablemente puede que esa no sea una opción para mí. Mis conjuntos de datos son ~10k x 10k y cada ajuste adicional que ejecuto en cada columna realmente aumenta el tiempo de ejecución. Por lo tanto, esperaba limitar la búsqueda de la mejor opción a unas pocas distribuciones y excluir las demás.
Re: Plataforma de capacidad de proceso: ¿Existe alguna manera de especificar las distribuciones utilizadas para Best Fit?Gracias @mmarchandTSI . No sabía que podía poner la misma columna en "Variables de proceso ()" varias veces. Esta podría ser la respuesta. Todavía necesito evaluar de alguna manera qué distribución se ajusta mejor, pero creo que puedo capturar el AICc de cada dist y usarlo para determinar cuál es la mejor. Será interesante ver si esto es más rápido que simplemente ejecutar un "mejor ajuste" utilizando todas las distribuciones.
Re: Plataforma de capacidad de procesos: ¿Existe alguna forma de especificar las distribuciones utilizadas para Best Fit?Puede limitar fácilmente qué distribuciones caben cuando utiliza la plataforma de distribución
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)
)
));