Establecer límites de especificaciones para la macro K sigmaUtilizo mucho la plataforma "Distribución" junto con "Establecer límites de especificaciones para KSigma" para obtener límites de especificaciones sugeridos para datos no normales.El flujo de trabajo es Distribución->asignar una distribución->capacidad de proceso en la salida de distribución->Establecer límites de especificaciones para K Sigma.Esto puede convertirse en un proceso largo cuando tienes muchas columnas.
Lo ideal sería poder asignar la distribución correcta y luego tener una macro que recorrería cada columna y generaría el resultado "Establecer límite...".Veo que hay un script de ejemplo para esta funcionalidad, pero tiene una distribución codificada y parece que solo se aplica a todas las columnas.
Parece que mi primer obstáculo, que parece una tontería, es intentar obtener la distribución asignada en la plataforma de distribución para poder reemplazar su codificación (LogNormal en este ejemplo):
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = Distribution( Column( :CO ) );
obj << Fit Distribution( LogNormal( Set Spec Limits for KSigma( 3 ) ) );
Estaba pensando en usar algo como informe actual()["Distribuciones"]<< obtener objeto programable;
para poder usar el código para el análisis de la distribución abierta y luego tengo que descubrir cómo recorrer las columnas en la distribución abierta.
La otra opción en la que estaba pensando era asignar las distribuciones como una propiedad de columna y extraerlas y ejecutar un montón de análisis individuales, pero tampoco vi código para seguir esa ruta.
Gracias por cualquier idea!!
esteban
Ingeniería de Calidad y ProcesosRe: Establecer límites de especificaciones para la macro K sigmaEso fue todo, resulta que parte del problema fue obra mía.No me di cuenta de que Handle[1] estaba en la primera distribución en el orden de la lista (Normal, Cauchy, Lognormal, etc.), no en la primera distribución en la tabla ordenada de AIC.Entonces la macro se ejecutaba y no veía nada porque se había aplicado a la distribución Normal y estaba oculta. Si cambié Handle[1] a Handle["best"], entonces funcionó con la mejor distribución elegida.
El código final fue simplemente este (¡aunque aprendí mucho!). ¡Gracias de nuevo por toda la ayuda, Tonya!
Names Default To Here( 1 );
dt=Current Data Table();
pf=current report()["Distributions"]<< get scriptable object;
pf<<(Fit Handle["best"]<<PROCESS capability=""></PROCESS>
Re: Establecer límites de especificaciones para la macro K sigmaEstás mezclando instaladores nuevos con instaladores antiguos.El código debe ser completamente diferente para los nuevos instaladores.A continuación se muestra un código de ejemplo para los nuevos instaladores.
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = dt<<DISTRIBUTION></DISTRIBUTION>
Re: Establecer límites de especificaciones para la macro K sigmaGracias por mirar esto un poco más, Tonya.
Estoy de acuerdo en que el código que proporcionaste funciona, pero parece funcionar porque primero estás asignando las distribuciones a través de la macro.Si elimino las distribuciones y las vuelvo a agregar manualmente y luego intento ejecutar las dos últimas líneas de la macro, no funciona.
Lo que encontré interesante fue que las distribuciones ajustadas tenían el nombre "Exponencial ajustada" frente a "Distribución exponencial ajustada" que aparece cuando la asigno manualmente.Entonces me hizo pensar y... ¡Puedo hacerlo funcionar si uso los ajustes heredados!Entonces, si habilito los instaladores heredados, ajusto las distribuciones manualmente y luego ejecuto las dos últimas líneas, funciona perfectamente.
Entonces, ¿tal vez sea necesario realizar una modificación del script para poder trabajar con la nueva funcionalidad de ajuste que apareció en 15?
esteban
Re: Establecer límites de especificaciones para la macro K sigmaEl código me funciona bien si tengo más de 1 columna en distribución.
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = Distribution(
Continuous Distribution(
Column( :CO ),
Fit Distribution(
Exponential
)
),
Continuous Distribution( Column( :POP ), Fit Distribution( Gamma) )
);
ex=current report()["Distributions"]<< get scriptable object;
ex<<(Fit Handle[1]<<( Set Spec Limits for KSigma( 3 ) ) );
Re: Establecer límites de especificaciones para la macro K sigmaProbablemente ayudaría si incluyera mi script:
Names Default To Here( 1 );
dt=Current Data Table();
ex=current report()["Distributions"]<< get scriptable object;
ex<<(Fit Handle[1]<<( Set Spec Limits for KSigma( 3 ) ) );
Lo ideal sería ejecutar la plataforma de distribución, seleccionar mi distribución para cada columna y luego ejecutar este script para establecer todos los límites de especificaciones.
Entonces esto funciona, pero solo si tengo una columna en el Análisis de distribución.
esteban
Re: Establecer límites de especificaciones para la macro K sigmaFuncionó para mí con varias columnas.
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = Distribution( Column( :CO, :POP ) );
obj << Fit Distribution( exponential ) ;
obj<<(Fit Handle[1]<<( Set Spec Limits for KSigma( 3 ) ) );
Re: Establecer límites de especificaciones para la macro K sigmaGracias tonia!
Eso funciona muy bien.Sin embargo, sólo parece funcionar si tengo una columna en el Análisis de distribución.¿Hay algo que deba cambiar para que funcione cuando tengo varias columnas en el análisis?Si tengo más de uno no funciona; no hay error pero tampoco pasa nada.
El script de la biblioteca de muestra se ejecutará con varias columnas (aunque es una opción de distribución codificada).
esteban
Re: Establecer límites de especificaciones para la macro K sigmaSi solo tiene un ajuste por respuesta, puede utilizar lo siguiente:
obj<<(Fit Handle[1]<<( Establecer límites de especificaciones para KSigma( 3 ) ) );
Re: Establecer límites de especificaciones para la macro K sigma"Mostrar estructura de árbol" Puede ayudarle a abordar la posición adecuada en el informe.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = Distribution( Column( :CO ) );
obj << Fit Distribution( LogNormal( Set Spec Limits for KSigma( 3 ) ) );
obj << show tree structure;