Immergersi in Explore OutliersMi sono appena imbattuto nella piattaforma Explore Outliers e sono a dir poco stordito. La mia domanda si trova in Exclude Rows sotto Robust Fit Outliers. In realtà sto solo cercando di vedere come funziona lo script all'interno di questa piattaforma, in particolare come determina quali righe escludere. Ho fino a 200+ colonne dopo aver diviso la tabella con i limiti di screening appropriati.
Posso fare Save Script to Script Window ma mi sembra solo di mostrarmi come scrivere lo script in un modulo macro e non in realtà le funzioni di riga.
Grazie
Ri: Immergersi in Explore OutliersProva a mettere:
Batch Interactive( 1 );
all'inizio del codice.
Ri: Immergersi in Explore Outliers@ian_jmp
Potresti per favore aiutarmi con questo messaggio di errore che sto ricevendo .. Quando eseguo questo script manualmente, funziona perfettamente e non genera errori (vedere la schermata del registro), tuttavia se provo a utilizzarlo in un'espressione e lo eseguo automaticamente ottengo il seguente messaggio di errore e quindi i successivi messaggi di errore ( ogni riga del registro che indica che i valori sono stati sostituiti da valori mancanti. Ho provato a inserire un Wait () ma non è stato d'aiuto.
Grazie Davide
errore 

Ri: Immergersi in Explore OutliersNon posso ringraziarti abbastanza per questo... Questo è incredibile! Il problema dei valori anomali è stato il problema della mia esistenza (insieme alla creazione della mappa dei wafer) poiché ero incaricato di tracciare tutti questi dati. Il signor txnelson mi ha illuminato sul metodo di controllo dell'intervallo che è buono quando ho limiti di specifiche per confrontarlo, tuttavia solo tracciare dati grezzi con dove non posso usare il controllo è stato difficile per me ..
Ri: Immergersi in Explore OutliersNon ho mai tentato di scrivere "Explore Outliers" prima, quindi potrebbe esserci un modo migliore: il codice seguente ha funzionato nell'unico caso in cui ho avuto il tempo di provare, quindi potrebbe farti iniziare:
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;
Anziché impostare le celle come mancanti, potresti prendere in considerazione l'utilizzo di codici di valori mancanti.
Ri: Immergersi in Explore OutliersGrazie per la risposta. Ho trovato il link a cui ti riferivi e sto esaminando tutte le informazioni per determinare qual è il metodo migliore da utilizzare per i miei dati.
Mi scuso per non essere stato più specifico nel mio primo post. Quello che vorrei fare è automatizzare la piattaforma Explore Outliers in una moltitudine di funzioni di tracciamento che sto creando. Ad esempio, carica la mia tabella di dati, dividi la colonna ed esegui l'Esplora valore anomalo che ovviamente è in grado di selezionare le righe che sono considerate un valore anomalo e quindi escluderlo. Ho notato che una riga è stata esclusa, viene visualizzato un errore. Dovrei essere in qualche modo in grado di ignorarlo per passare alla colonna successiva. Ho allegato una tabella di dati e ho incluso un JSL di come vedo logicamente l'esecuzione dello script. Non funziona ancora ed è per questo che sono qui.Alcuni test hanno più di 300 suddivisi per ( :SPEC_COL_NAMES ).
Grazie in anticipo.
----- Inizia il ciclo
----- Esegui Explore Outliers su cols[1]
----- Escludi riga
----- Distribuzione trama
----- Cancella stati riga
----- Esegui Explore Outliers su cols[2]
----- Escludi riga
----- Distribuzione trama
----- Cancella stati riga
----- Termina ciclo dopo 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
);
);
Ri: Immergersi in Explore OutliersPer quanto riguarda ' in particolare come determina quali righe escludere ', hai dato un'occhiata al aiuto necessario pagina?
Re: Immergersi in Esplora OutliersSono nuovo di JMP.
Sembra che le 3 colonne nel codice sottostante siano numeriche! Schermata dei valori anomali per ogni colonna.
colsToScreen = {:VDP_M1, :VDP_M2, :VDP_NBASE};Lo script non funziona sui miei dati con 4 colonne:
colsToScreen = {:NomeTest, :Temperatura, :VDD, :Misurazioni}
Dove:
Nome del test: test1, test2, test3,....ect.
Temperatura: -40°C, 25°C, 85°C, 125°C
Tensione di uscita: 1,8 V, 2,0 V, 2,5 V, 3,0 V
Vorrei eseguire VALORI OUTLIERS sulle colonne Misurazioni per ogni combinazione di Nome test+Temperatura+VDD
P.S. Ho letto molti post qui su come utilizzare il "GRUPPO", ma senza successo.
Apprezzo qualsiasi aiuto.
Grazie.
Re: Immergersi in Esplora OutliersPerché stai scrivendo una sceneggiatura? Puoi semplicemente andare su
Analizza=>Screening=>Esplora i valori anomali
ed eseguirlo in modo interattivo. Non è richiesta alcuna scrittura di script.
Re: Immergersi in Esplora OutliersLo script non ti fornirà gli algoritmi. Lo script chiamerà solo la piattaforma Explore Outliers. Devi andare al sistema di Help e cercare i dettagli statistici per la piattaforma Explore Outliers.