是什麼激發了這個願望清單請求?
在我的公司,我們需要計算包含約 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