是什么激发了这个愿望清单请求?
在我的公司,我们需要计算包含约 10k 行 x 10k 列的数据集的 ppk 和新限制,并且需要半天在多个数据集上完成此操作。 这可能需要很长时间。 我已经探索过编写脚本来使用分发或流程能力平台来自动化此操作,并输出 ppk、最佳拟合、该拟合的参数以及基于目标 ppk 的一组新限制。 一些同事在 Matlab 中编写了一个脚本来执行相同的操作。 尽管我竭尽全力优化 JMP 脚本,但 Matlab 脚本的速度仍然快 10 倍左右。
您希望看到什么改进?
我希望看到一个可以在脚本中运行并且不创建任何报告窗口的 JSL 函数。 它将有这些输入:
- 列数据为 1xn 矩阵,
- 适合数据的分布列表,
- 使用的首选 ppk 方法(分数、百分位数),
- 目标ppk
它会输出以下内容:
- 最适合的分布名称(最小 AICC)
- 最佳拟合分布类型的拟合参数向量或列表
- PPK,
- 使用的 ppk 方法(zscore 或百分位数),
- aicc(很高兴拥有,但不是必需的)
- 新限制,使用目标 ppk 计算(很好有,但不是必需的)
最后,它应该能够拟合这些分布:Beta、Exponential、Gamma、Johnson、Lognormal、Normal、Normal Mixture、SHASH 和 Weibull。
为什么这个想法很重要?
(1) 我希望我的团队使用 JMP,但如果我的脚本需要 30 分钟才能运行,而 Matlab 脚本执行相同的操作但只需要 1 分钟,那么几乎不可能说服他们。 我的脚本速度较慢的原因是为 10k 列创建报告窗口的所有开销。 相反,如果这些计算可以使用可以跳过报告生成并仅提供我需要的结果的函数来完成,那就太好了。 我相信这会更快,并且更容易编码。
(2) 我们必须能够分析>10k 列的数据集。 我注意到,当我尝试使用 12000 列运行脚本时,它会在执行过程中停止。 我还没有确定根本原因,但它对于 3600 列或更少的情况工作正常。 我怀疑报告窗口生成可能存在限制,导致错误。
我尝试过的其他事情
1. Fit Censored() 和 Fit Transform to Normal() 函数都与我请求的函数类似,因为它们都可以用于获取拟合参数。 他们不计算 ppk 或新限制,但我可以使用拟合参数自己计算 ppk 和新限制。 然而,这些函数只支持我想要的发行版的一个子集。
2. 我目前正在探索用 Python 编写一些内容并将其合并到我现有的脚本中,以取代分发和流程能力平台的使用。 但这会花费我很多时间。
不幸的是,重现我的问题的脚本相当长。 我将根据要求提供,但希望我对上述问题的解释足够了。
我的具体情况:
JMP 专业版 17.2.0
MacOS 文图拉 13.6.1