如何找到每個測試以篩選一個單元我對 JMP 和 JSL 還很陌生,目前正在研究在一個非常大的數據集中篩選出一個單元。 我的目標是獲得一個輸出表,其中包含每個測試的名稱,其中單元(由其 ECID 定義)的 z 分數大於 3(或我可以選擇的其他值)。 這些 z 分數需要基於每個測試各自通過單元的分佈。 是否有用於此的 JMP 功能或已按照這些思路執行某些操作的腳本。 下面是我非常鬆散的腳本偽代碼。
偽代碼:
需要足夠大的數據集來為不同的測試提供正態分佈(至少 30 個好的單元)
將基礎數據表子集為僅 bin 1 單元
僅使用通過單元計算每個測試的平均值和標準偏差
計算與每個測試的均值和標準偏差相關的 z 分數
創建包含所有測試和分數高於 3 的輸出表
分析數據表腳本視窗回复:如何找到每個測試來篩選一個單元這是一個示例腳本,它創建 Z 分數並識別大於 3 的值。這是您想要的方向嗎?
Names Default To Here( 1 );
// Open Data Table: Probe.jmp
// → Data Table( "Probe" )
dt = Open( "$SAMPLE_DATA/Process Measurements.jmp" );
// Create a Bin column
dt << New Column( "Bin",
modeling type( nominal ),
set each value( If( Random Uniform( 0, 1 ) <= .8, 1, Random Integer( 2, 7 ) ) )
);
// Get column names for all continuous columns
colNames = dt << get column names( string, continuous );
For( i = 1, i <= N Items( colNames ), i++,
mean = .;
stddev = .;
// Create the Z scores for each test
dt << New Column( colNames[i] || " Z Score",
formula(
If( Row() == 1,
Mean = Col Mean( If( :Bin == 1, As Column( dt, colNames[i] ), . ) );
Stddev = Col Std Dev( If( :Bin == 1, As Column( dt, colNames[i] ), . ) );
);
Abs( :Process 1 - Mean ) / Stddev;
)
);
Column( dt, N Cols( dt ) ) << delete formula;
targetRows = dt << get rows where( As Column( dt, N Cols( dt ) ) >= 3 );
Try( As Column( dt, N Cols( dt ) ) << color cells( "red", As List( targetRows ) ) );
);回复:如何找到每個測試來篩選一個單元這是一個非常好的起點。 謝謝您的幫助。 我想採用這個腳本,以便我只能在大型數據集中具有特定 ECID 的單元上運行它。 如果我要在每個數據點/芯片上運行此腳本,我將不幸地導致 JMP 崩潰。 您如何建議採用此腳本來實現這一點?
回复:如何找到每個測試來篩選一個單元我只需創建原始數據表的子集並對其進行分析。
dt = current data table();
ECIDsToTest = { "413257", "56739",...........};
dt << select where( contains( ECIDsToTest, :ECID ) );
dtToTest = dt << subset( selected columns( 0 ), selected rows( 1 ) );
// Run the Z Score analysis on the new subset回复:如何找到每個測試來篩選一個單元嗨,吉姆,
我之前的問題不是很清楚。 我想根據整個數據集的分佈為每個測試找到一個單位 z 分數。 正因為如此,我不能只對 ECID 進行子集化。 其次,我不確定原始腳本是否正常工作。 經過進一步審查,我注意到許多 z 分數不太可能。 有一些 z 分數接近三位數。

回复:如何找到每個測試來篩選一個單元請提供一個示例輸入數據表,以及您對輸出的期望的示例。