Re: Pantalla de valores atípicos para PAT automotriz (prueba de promedio parcial)Hola,
Siga mi última publicación, estoy usando el valor atípico de ajuste robusto: la función predeterminada es detectar valores atípicos altos / bajos, media +/- 6 sigma.
Para algunos de los ítems, solo necesitamos filtrar el valor atípico fuera de la media + 6 sigma (como el ítem de fuga, bajo es bueno).
¿Alguien puede decirme cómo usar el valor atípico de ajuste robusto solo para la media + 6 sigma?
Gracias
Re: Pantalla de valores atípicos para PAT automotriz (prueba de promedio parcial)Terminé manipulando expresiones. Si no hay una mejor manera, debería poder adaptar este enfoque:
NamesDefaultToHere(1);
// Sample data
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Explore outliers
eo = dt << Explore Outliers(Y( :height ));
eo << Robust Fit Outliers( K Sigma( 1 ), Huber( 0 ), Quartile( 1 ) );
eo << obj << Color Cells( :height ); // Blue (red) cells are 'low' ('high')
// Get the row numbers of the red cells . . .
// (1) Get the column script
colScript = :height << getScript;
// (2) Find the 'Color Cells' expression in the column script
n = 1;
While(Head(Arg(colScript, n)) != Expr(Color Cells), n++);
cs = Arg(colScript, n);
// (3) Find the row numbwrs of the red cells (red is '35')
n = 1;
While((Arg(cs, 1)[n])[1] != 35, n++);
redRowList = (Arg(cs, 1)[n])[2];
Print(redRowList);Re: Pantalla de valores atípicos para PAT automotriz (prueba de promedio parcial)Hola, Ian,
Gracias por su respuesta.
1. El valor atípico de Robust Fit es para ambas direcciones, la siguiente fórmula es para marcar en rojo la fila de +1 sigma o -1 sigma.
Me gustaría marcar la fila solo con +1 sigma.
eo << Robust Fit Outliers( K Sigma( 1 ), Huber( 0 ), Quartile( 1 ) );
2. Por su ayuda para imprimir el collist, esto es realmente lo que estoy buscando.
el error que recibí era que el objeto no se podía suscribir en el acceso o la evaluación de 'Arg (cs,1) [n]/*###*/1]', Arg(cs,1)[n]/*###*/ 1]'
¿Puedes revisarlo de nuevo? gracias.
Pantalla de valores atípicos para PAT automotriz (prueba de promedio parcial)Hola, equipo,
Estoy usando el valor atípico Robust Fit - cuartil, el resultado es para pantalla alta y baja, media +/- 6 K (Sigma).
Ahora solo estoy viendo la parte de la fuga. Solo necesito el valor atípico para la media + 6 K (Sigma).
Por favor, dime cómo hacer que suceda desde JSL. Gracias.
Explorar valores atípicos( Y( :icc_aux10_total_vcc_1.000, :icc_aux10_VCCAUX10_vcc_1.000, :icc_aux18_total_vcc_1.000, :icc_aux18_VCCAUX18_vcc_1.000, :icc_core_total_vcc_1.050, :icc_core _VCC_vcc_1.050, :icc_core_lp_total_vcc_1.000, :icc_core_lp_VCC_vcc_1.000, :iccio_b_total_vcc_1.000, :iccio_b_VCCIOB_vcc_1.000, :iccio_ltr_total_vcc_1.000, :iccio_ltr_VCCIOLTR_vcc_1.000 ), Valores atípicos de ajuste robusto( K Sigma( 6 ), Huber( 0 ), Cuartil( 1 ) ), SendToReport( Dispatch( {}, "Commands", OutlineBox, {Cerrar (0)}))));Ingeniería de Calidad y ProcesosRe: Pantalla de valores atípicos para PAT automotriz (prueba de promedio parcial)Usar el color rojo y azul es solo una forma indirecta de eludir el hecho de que (hasta donde yo sé), no hay una forma directa de pedirle a JMP que realice una evaluación unilateral (en el lado alto o bajo, según sea necesario) .
Para mí (usando JMP 17.1 en una Mac), el código publicado anteriormente no genera un error. Imprime:
{25, 27, 30, 37, 39, 40}
al registro, y esta es una lista de los números de fila que contienen valores atípicos en el lado alto (las celdas rojas de la tabla).
Re: Pantalla de valores atípicos para PAT automotriz (prueba de promedio parcial)Hola, Ian,
Lo siento por la respuesta tardía. Ahora tengo JMP17 para ejecutar tu script. No hay error como mencionas. Muestra color rojo/azul respectivamente.
Intento cambiar el sigma de 1 a 2,3,4,5,6 y luego se encuentra el mismo error.
¿Alguna idea de como arreglarlo?
Gracias.
Re: Pantalla de valores atípicos para PAT automotriz (prueba de promedio parcial)Arriba tuve cuidado de decir 'adaptar este enfoque'
. Sin hablar por los demás, cuando publico fragmentos de JSL, mi intención (generalmente) es alentar a alguien a descubrir el código y luego poder ir más allá por sí mismo.
Si cambia sigma a 2, habrá visto que solo hay celdas azules en la tabla (valores atípicos en el lado bajo), y el código no es lo suficientemente general para manejar esto y genera el error que vio.
Encuentre un script más completo (no probado...) que debería cubrir todas las situaciones:
NamesDefaultToHere(1);
// Sample data
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Explore outliers
eo = dt << Explore Outliers(Y( :height ));
eo << Robust Fit Outliers( K Sigma( 2 ), Huber( 0 ), Quartile( 1 ) );
eo << obj << Color Cells( :height ); // Blue (red) cells are 'low' ('high')
// Get the column script
colScript = :height << getScript;
// Initialise lists (which may or may not be updated by the subsequent code)
redRowList = {};
blueRowList = {};
// Find the location of the sub-expression 'Color Cells'. if there are no outliers, 'colorCellsExist' will be 0
subExpr = {};
for(i=1, i<=NArg(colScript), i++, InsertInto(subExpr, Head(Arg(colScript, i))));
colorCellsExist = Contains(subExpr, Expr(Color Cells));
// Find the row numbwrs of any high (red) cells or low (blue) cells (red is '35', blue is '37'):
// Need to handle situations in which there are only high outliers, only low outliers, both high and low
// outliers, or no outliers
if(
colorCellsExist,
// Get the 'Color Cells' expression in the column script
cs = Arg(colScript, colorCellsExist);
if(
// If 'cs' is a list of lists, we have both high and low outliers . . .
IsList(Arg(cs, 1)[1]),
for(i=1, i<=NItems(Arg(cs, 1)), i++,
if(
(Arg(cs, 1)[i])[1] == 35, redRowList = (Arg(cs, 1)[i])[2];
(Arg(cs, 1)[i])[1] == 37, blueRowList = (Arg(cs, 1)[i])[2];
);
);
,
// . . . or if 'cs' is not a list of lists, we have either high or low outliers (but not both)
if(
Arg(cs, 1)[1] == 35, redRowList = Arg(cs, 1)[2],
Arg(cs, 1)[1] == 37, blueRowList = Arg(cs, 1)[2]
);
);
);
Print("High: "||Char(redRowList)||" Low: "||Char(blueRowList));