JSL方法从多元离群值分析中获取控制上限是什么激发了这个愿望清单请求?
多元平台的离群值分析允许您将马哈拉诺比斯距离、折刀距离等保存到列中。它将绘制这些图并显示当前 alpha 的计算控制上限 - 对于使用距离来评估点是否为异常值非常有用。JMP 将单个值(即 Jackknife 值)放入作为该 UCL 的列属性(即在 Jackknife Distances 列上)。但是,如果存在“按组”,则每个组都有不同的 UCL 值(基于组中非缺失点的数量),并且列属性中的该单个值似乎仅适用于最后一个组。
有人可能认为您可以从平台的报告中提取它们,但看起来并非如此 - 它们位于框架框中,而不是报告中的文本框中,而且我没有看到一种提取这些值的方法。
您希望看到什么改进?
在我的用例中,对于按组,我也希望 UCL 位于一列中。但我想看到的可能是向平台询问这些信息的能力,也许类似于您可以使用 <
相关:如果在这种情况下有一种好方法来<<获取组是什么以便更好地使用该值列表,那就太好了? 至少我不确定如何在不从报告上的大纲框名称中解析它的情况下执行此操作。如果能得到一个方便的列表,其顺序与您从 <
为什么这个想法很重要?
我认为 UCL 有用的原因很清楚 - 您可以将距离与它进行比较,以查看对于给定的置信度,它是否是一个很大的距离?
这是一个社区帖子,其中有人想要这个值,我猜他们只是没有使用 By,因为对列属性中的单个值感到满意:已解决:折刀预测值 - JMP 用户社区
自动化和脚本编写基础数据分析和建模回复:JSL 方法从多元离群值分析中获取控制上限您可以使用脚本导出这些值。 这不是最好的方法,但应该表明这是可能的
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Solubility.jmp");
dt << New Column("Group", Numeric, Continuous, Formula(
If(Row() < 20, 1, Row() < 40, 2, 3);
));
mv = dt << Multivariate(
Y(:Ether, :Chloroform, :Benzene, :Carbon Tetrachloride, :Hexane),
Variance Estimation("Row-wise"),
Scatterplot Matrix(1),
By(:Group)
);
mv << Jackknife Distances(1, Save Jackknife Distances);
window = mv[1] << Top Parent;
fbs = window << XPath("//OutlineBox[text()='Jackknife Distances']//FrameBox");
fbs_of_interest = fbs[2::NItems(fbs)::2];
segs = fbs_of_interest << Find Segs(CustomStreamSeg(1));
seg_scripts = segs << get script;
ucls = {};
For Each({seg_script}, seg_scripts,
Insert Into(ucls, seg_script[1]["Text"][2]);
);
show(ucls);回复:JSL 方法从多元离群值分析中获取控制上限聪明的!我曾尝试使用 FindSegs 未成功。但这并没有改变我对直接请求这些值的方式的愿望。
回复:JSL 方法从多元离群值分析中获取控制上限Kudo + Kudo 提供了很好的解决方法:)
@jthi你怎么发现它是自定义流段?
有没有类似的东西<< 列出段?


回复:JSL 方法从多元离群值分析中获取控制上限最有可能的是通过猜测和尝试不同的事情(我知道它是 FrameBox -> 我知道可能有显示段 -> 从那里开始(检查 xml,使用 << find segs... 或只是从 xml 开始)。 不需要访问那个奇怪的 CustomStreamSeg,因为您可以从访问其 LineSeg 的“早期”FrameBox 获取 UCL 值
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Solubility.jmp");
dt << New Column("Group", Numeric, Continuous, Formula(
If(Row() < 20, 1, Row() < 40, 2, 3);
));
mv = dt << Multivariate(
Y(:Ether, :Chloroform, :Benzene, :Carbon Tetrachloride, :Hexane),
Variance Estimation("Row-wise"),
Scatterplot Matrix(1),
By(:Group)
);
mv << Jackknife Distances(1, Save Jackknife Distances);
window = mv[1] << Top Parent;
linesegs = window << XPath("//FrameBox[@helpKey = 'Multiv Outlier']/LineSeg[@description='UCL Line']");
ucls = {};
For Each({yvals}, linesegs << Get Y Values,
Insert Into(ucls, yvals[1]);
);
show(ucls);回复:JSL 方法从多元离群值分析中获取控制上限谢谢 :)
在这里使用 XML 也是一个不错的技巧 - 我预计它会停止在 FrameBox 级别。
XPath 在这里也能工作,这很酷……
回复:JSL 方法从多元异常值分析中获取上限控制限关于这一点,还有几点值得一看:当您以这种方式保存 Jackknife 距离时(来自 Multivariate 平台的异常值分析),您不会得到公式列,但如果您保存马哈拉诺比斯距离或 T 平方,则会得到公式列。Jackknife 距离的结果与 Multivariate Methods 文档中描述的公式相符,但这并不会在简单的 1-d 情况下始终导致缺失值,因为所有其他值都相同,因此它们的标准差为 0,在这种情况下,它可能导致缺失值或非常大的值。