获取任何空间填充设计的 MaxPro 值尊敬的 JMP 用户和脚本编写专家,您好,
我想比较几个 DoE(空间填充类型)。有些是用 JMP 生成的(具有因子和响应所需的所有列属性),有些是用其他外部工具创建的(因此在 JMP 中导入文件后没有列属性)。
由于这些设计是空间填充类型,我想根据差异和MaxPro标准值对它们进行比较(此处的示例采用针对 4 个连续因子的快速灵活填充设计):

这些值可直接用于“DOE Dialog”脚本中 JMP 生成的设计,但不能用于外部工具。
我已经阅读了脚本索引和“ <<获取 MaxPro 值”函数,但我不知道如何在“外部”DoE 脚本中使用它?
实际上,我想要一个脚本,可以计算任何设计的差异和 MaxPro 值,并提供包含结果的数据表。
理想情况下(也许是愿望清单的一个想法),我希望有一个像Compare Designs这样的比较平台,在其中我可以匹配不同表之间的因素,然后会打开一个窗口来比较这两个值、差异和 MaxPro 标准。
我附加了两个数据表用于测试,每个数据表都是具有 4 个连续因子的设计,一个由外部生成,一个由 JMP 生成。
欢迎任何帮助!
谢谢,
自动化和脚本实验设计回复:获取任何空间填充设计的 MaxPro 值你好@Victor_G ,
下面是一些 JSL 代码,可以满足您的要求。它没有什么特别的,我确实明确地写出了所有 DOE 命令来生成 SFD。您可以这样做,也可以指向报告窗口并从中提取数字框值。但是,< <>
希望这至少能帮助你入门。
Names Default to Here(1);
dt = current data table();
dtdoe =
DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, 0, 0.5, "X1", 0 ),
Add Factor( Continuous, 0, 0.5, "X2", 0 ),
Add Factor( Continuous, 0, 0.5, "X3", 0 ),
Add Factor( Continuous, 0, 0.5, "X4", 0 ), Set Random Seed( 1622525169 ),
FFF Optimality Criterion( MaxPro ),
Space Filling Design Type( Fast Flexible Filling, 20 ), Simulate Responses( 0 ),
Set Run Order( Randomize ), Make Table}
);
MaxPro_value = dtdoe <<GET max="" pro="" values=""></GET>
<P> </P>
<P>希望这有帮助!,</P>
<P>DS</P>回复:获取任何空间填充设计的 MaxPro 值嗨@SDF1 ,
感谢您的关注和初步想法!
我确实可以访问在 JMP 中创建的任何空间填充设计的 MaxPro(和差异)值(默认情况下会计算它们),并且我原本打算使用“制作成数据表”非常天真地提取它们。我认为可能有一种更优雅的方法来做到这一点,即确定这些值框的属性是什么,并创建一个 JSL 脚本以添加到 JMP 中的任何空间填充设计中,以便可以将这些值提取到单独的数据表中。您的脚本与在 JMP 中创建空间填充设计后生成的“DOE 对话框”非常相似。
我的问题与以下问题有关:我们能否计算任何空间填充设计(即使是在 JMP 之外生成的设计)的 MaxPro 和差异值?如果可以,如何编写脚本或使其自动化?
编辑:我刚刚意识到我可以使用在 JMP 之外生成的数据表并将其用作空间填充平台中的候选集(通过使用协变量因子来强制运行),以便 JMP 可以计算 MaxPro 和差异值(此处的示例使用我原始帖子中提供的外部数据表):

但是我不确定这些值是否正确,因为无论我使用这种“候选集”方法将哪种设计加载到 JMP 中(即使是 JMP 生成的空间填充设计),我都会获得相同的 MaxPro 和差异值。所以这似乎是一个错误,而不是实际计算的值。如果有人知道如何进行计算并显示它们,我会非常高兴!
最好的,
回复:获取任何空间填充设计的 MaxPro 值你好@Victor_G ,
明白了。抱歉,我不太清楚您是想自己进行计算——或者至少编写脚本而不是从报告窗口提取。我理解为“非此即彼”——要么从报告窗口提取,要么计算。但是,我明白您为什么要自己计算,因为无论分析哪个表,您都会得到相同的 MaxPro 值,这确实很奇怪。
在线帮助中引用了一篇期刊文章: Joseph, VR, Gul, E., and Ba, S. (2015). “Maximum Projection Designs for Computer Experiments.” Biometrika 102:371–380,其中应该有计算 MaxPro 的公式(或算法)。我无法访问 Biometrika 期刊,但如果您可以访问,您应该能够设置一些 JSL 来代表您进行计算。从 JMP 在线帮助中的描述来看,这听起来几乎像是他们正在取潜在设计点之间距离的点积并试图最大化这个距离。
希望这有助于推动事情向前发展。
DS
回复:获取任何空间填充设计的 MaxPro 值嗨@SDF1 ,
谢谢你的参考。
我可能要先阅读社区的旧帖子,然后使用层次聚类平台来访问矩阵距离:
A = Current Data Table() <<
Hierarchical Cluster(
Y( :X1, :X2, :X3, :X4 ),
Method( "Ward" ),
Standardize By( "Columns" ),
Dendrogram Scale( "Distance Scale" ),
Number of Clusters( 3 ),
Set Random Seed( 2088588291 ),
SendToReport(
Dispatch( {"Dendrogram"}, "Clust Dendro", FrameBox,
{Frame Size( 35, 325 )}
)
)
);
A << Save Distance Matrix;
A << Close Window;
然后,我有点不知道如何使用距离矩阵从空间填充设计中获取与 DOE 对话框中相同的信息:最小距离、最近点、MaxPro 值和差异值。
我已经使用多维缩放平台和先前生成的距离矩阵进行了测试,并将维数定义为我的设计中的原始因子数;我能够正确地识别最近的点,但与 DoE 对话框中完成的计算相比,(最小)距离似乎不正确:

有来自@Mark_Bailey 、 @Ryan_Lekivetz和其他 JMP 专家的意见吗?
编辑:在数据格式的层次聚类选项中使用“非标准化”可以给我正确的距离......我越来越接近了!
我现在可以根据最小、平均、最大距离值以及点间距离的变化(范围、标准差/方差等)来比较设计。仍然没有 MaxPro 计算,但对空间填充设计中的点分布有了更好的了解。
此外,使用平台分布并将因子值分布与均匀分布(将 alpha 和 beta 值设置为 1 的 Beta)进行比较,有助于我更接近这种“差异”值。可能与 p 值、对数似然、卡方值有关,这些值似乎与差异相关:

回复:获取任何空间填充设计的 MaxPro 值在此主题上发布了两个愿望清单项目:
空间填充设计的设计浏览器
比较设计平台的空间填充设计
生成多个设计并使用来自层次聚类平台的距离已经有助于评估空间填充设计的“性能”和点分布。以下是两种设计类型在因子数量(维数)增加的情况下的最小、平均和最大距离值的直观比较。第一种设计随着维数的增加而出现距离的急剧增加,而第二种设计似乎更“稳健”,随着因子的增加,距离呈线性增加。

查看点之间距离的方差(似乎与差异值相关),与设计 2 相比,设计 1 似乎具有更紧凑的点扩展方式。设计 2 在增加维度时能够以相同的“可变性”扩展点:

回复:获取任何空间填充设计的 MaxPro 值抱歉回复迟了(而且很简短)——加载外部设计时确实存在问题。请注意,该分母基于单维距离,因此如果您有任何具有相同值的输入,则分母为 0(通常我们正在寻找非折叠属性,这可以防止这种情况发生)。据我回忆,该公式可用于缩放估计值:
https://www.jmp.com/support/help/en/18.0/index.shtml#page/jmp/fast-flexible-filling-design-details.shtml
对于差异,我们正在讨论将该公式直接添加到文档中 - 如果您能够访问,在 Hickernell,它位于第 317 页的底部。
Fang, K.、Lin, D.、Winker, P. 和 Zhang, Y. (2000)。“均匀设计:理论与应用。” Technometrics 42:237-248。
Hickernell, F. (1998). “广义差异和正交误差界限。”计算数学67:299-322。