如何找到每个测试以筛选一个单元我对 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 分数接近三位数。

回复:如何找到每个测试来筛选一个单元请提供一个示例输入数据表,以及您对输出的期望的示例。