Sumergirse en Explorar valores atípicosAcabo de tropezar con la plataforma Explore Outliers y estoy muy mareado por decir lo menos. Mi pregunta radica en Excluir filas debajo de los valores atípicos de ajuste robusto. De hecho, solo estoy tratando de ver cómo funciona el script dentro de esta plataforma, específicamente cómo determina qué filas excluir. Tengo hasta más de 200 columnas después de dividir la tabla con los límites de detección adecuados.
Puedo hacer Guardar secuencia de comandos en la ventana de secuencias de comandos, pero solo aparece para mostrarme cómo escribir la secuencia de comandos en forma de macro y no en realidad las funciones de fila.
Gracias
Re: Profundizando en Explorar valores atípicosPrueba a poner:
Batch Interactive( 1 );
al comienzo de su código.
Re: Profundizando en Explorar valores atípicos@ian_jmp
¿Podría ayudarme con este mensaje de error que estoy recibiendo? Cuando ejecuto este script manualmente, funciona bien y no arroja ningún error (vea la captura de pantalla del registro); sin embargo, si trato de usar esto en una expresión y lo ejecuto automáticamente, recibo el siguiente mensaje de error y luego los mensajes de error posteriores ( cada línea del registro que dice que los valores fueron reemplazados por faltantes. Traté de poner un Wait() allí pero eso no ayudó.
gracias david
error 

Re: Profundizando en Explorar valores atípicosNo puedo agradecerte lo suficiente por esto... ¡Es increíble! El problema de los valores atípicos ha sido el baño de mi existencia (junto con la creación del mapa de obleas) ya que estaba a cargo de graficar todos estos datos. El Sr. txnelson me iluminó sobre el método de verificación de rango, que es bueno cuando tengo límites de especificaciones para compararlo también, sin embargo, solo trazar datos sin procesar donde no puedo usar la verificación fue difícil para mí.
Re: Profundizando en Explorar valores atípicosNo he intentado crear un script para 'Explorar valores atípicos' antes, por lo que puede haber una mejor manera: el código a continuación funcionó en el único caso que tuve tiempo de probar, por lo que podría ayudarlo a comenzar:
NamesDefaultToHere(1);
// Example data
dt1 = Open( "$SAMPLE_DATA/Probe.jmp" );
// Copy the data to a new table
dt2 = Eval(dt1 << getScript);
dt2 << setName((dt1 << getName||" Screened"));
// List of columns to screen
colsToScreen = {:VDP_M1, :VDP_M2, :VDP_NBASE};
// Screen for outliers using your favourite method
eo = dt2 << Explore Outliers(Y(Eval(colsToScreen)), Quantile Range Outliers( 1 ), Show Only Columns With Outliers(1), Invisible);
// Using the report, find the columns that have outliers
eoRep = Report(eo);
table = eoRep[TableBox(1)];
colList = eoRep[StringColBox(1)];
// Loop over these columns . . .
nCols = NItems(colList << get);
for(c=1, c<=nCols, c++,
// Select this column (described by a row)
CMD = Expr( table << setSelectedRows({colTBD}) );
SubstituteInto(CMD, Expr(colTBD), Eval(c));
CMD;
// Update dt2 for this column: Cells that were considered outliers are coloured red
eo << ColorCells(1);
eo << ChangeToMissing(1);
);
eoRep << closeWindow;
En lugar de establecer celdas como faltantes, podría considerar usar códigos de valores faltantes.
Re: Profundizando en Explorar valores atípicosGracias por la respuesta. Encontré ese enlace al que te referías y estoy trabajando con toda la información para determinar cuál es el mejor método para usar con mis datos.
Pido disculpas por no ser más específico en mi primer mensaje. Lo que me gustaría hacer es automatizar la plataforma Explore Outliers en una multitud de funciones de trazado que estoy creando. Por ejemplo, cargue mi tabla de datos, divida la columna y realice Explore Outlier, que obviamente puede seleccionar las filas que se consideran un valor atípico y luego excluirlo. Noté que una fila ha sido excluida, aparece un error. Tendría que poder ignorarlo de alguna manera para pasar a la siguiente columna. Adjunté una tabla de datos e incluí un JSL de cómo veo lógicamente que se ejecuta el script. No funciona hasta el momento y es por eso que estoy aquí.Algunas pruebas tienen más de 300 Split By ( :SPEC_COL_NAMES ).
Gracias de antemano.
----- Comenzar ciclo
----- Ejecute Explore Outliers en cols[1]
----- Excluir Fila
----- Distribución de Parcelas
----- Borrar estados de fila
----- Ejecute Explore Outliers en cols[2]
----- Excluir Fila
----- Distribución de Parcelas
----- Borrar estados de fila
----- Finalizar bucle después de cols[i]
dt = Current Data Table();
// Split Data Table by SPEC_COL_NAMES :
// This is used for a variety of things, specifically Spec Limits and Range Checks
dtsplitmeas = dt << Split(
Invisible,
Split By( :SPEC_COL_NAMES ),
Split( :Output_1 ),
Group( :wafer_number, :rownum, :colnum, :subrow, :subcol, :RowCol ),
Remaining Columns( Drop All )
);
cols = dtsplitmeas << Get Column Names( Numeric );
dtsum = dt << Summary(
Invisible,
Group( :wafer_number )
);
jjrn1 = New Window( "Distribution - Output_1 ", << Journal );
// I am taking a shot at the syntax and the way I think it should be coded.
// By all means, correct me if i am wrong and make any modifications you see fit
// I don't actually know how to address the different wafers #'s and the
// SPEC_COL_NAMES at the same time. This is why i figured 2 For() loops.
For( i = 1, i <= N Items( cols ), i++,
For( j = 1, j <= N Items( dtsum ), j++,
test = cols[i];
wfr = dtsum:wafer_number[j];
eo = Explore Outliers(
SendToByGroup( Bygroup Default ),
Y( As Column( test ) ),
Robust Fit Outliers,
Where( :wafer_number == wfr )
);
//------------------------------------------------------------ -/
// < Insert Script to Exclude Rows for col[1] in dtsplitmeas> /
// This is what my original question was /
// referring to /
//----------------------------------------------------------/
// Step into Control Chart, Control Chart Builder, Distributions, Fit Y by X plots
// Control Chart Builder is just an example
gb = Control Chart Builder(
Size( 847, 990 ),
Show Control Panel( 0 ),
Variables( Y( As Column( test ) ) ),
Chart( Position( 1 ), Limits( Sigma( "Levey Jennings" ) ) ),
Chart( Position( 2 ), Limits( Sigma( "Moving Range" ) ) )
);
// Create Control Chart for all SPEC_COL_NAMES place it into a report / journal
(gb << top Report)[Text Edit Box( 1 )] << delete; //delete the where statement
Report( gb )[Outline Box( 1 )] << Set Title( cols[i] );
jjrn2 << Append( Report( gb ) );
gb << Close Window;
// Clear Row States because when you exclude a row for a given column, it extends
// to all other colums on that row
dtsplitmeas << Clear Row States();
// Rise and Repeat for all SPEC_COL_NAMES
);
);
Re: Profundizando en Explorar valores atípicosAcerca de ' específicamente cómo determina qué filas excluir ', echaste un vistazo a la ayuda necesaria ¿página?
Re: Profundizando en la exploración de valores atípicosSoy nuevo en JMP.
Parece que las 3 columnas del código que aparece a continuación son numéricas. Se muestran valores atípicos en cada columna.
colsToScreen = {:VDP_M1, :VDP_M2, :VDP_NBASE};El script no funciona en mis datos con 4 columnas:
colsToScreen = {:NombrePrueba, :Temperatura, :VDD, :Medidas}
dónde:
Nombre de prueba: prueba1, prueba2, prueba3, ... etc.
Temperatura: -40 °C, 25 °C, 85 °C, 125 °C
Voltaje de entrada: 1,8 V, 2,0 V, 2,5 V, 3,0 V
Me gustaría ejecutar OUTLIERS en las columnas Medidas para cada combinación de Nombre de prueba+Temperatura+VDD
PD: Leí muchas publicaciones aquí sobre cómo usar el "GRUPO", pero sin éxito.
Agradezco cualquier ayuda.
Gracias.
Re: Profundizando en la exploración de valores atípicos¿Por qué estás escribiendo un guión? Puedes ir a
Analizar =>Examinar =>Explorar valores atípicos
y ejecutarlo de forma interactiva. No requiere programación.
Re: Profundizando en la exploración de valores atípicosEl script no le proporcionará los algoritmos. El script solo llamará a la plataforma Explore Outliers. Debe ir al sistema de ayuda y buscar los detalles estadísticos de la plataforma Explore Outliers.