このウィッシュリストリクエストのきっかけは何ですか?
私の会社では、最大 10,000 行 x 10,000 列を含むデータセットの ppk と新しい制限を計算する必要があり、これを複数のデータセットに対して半日ごとに実行する必要があります。 これには非常に長い時間がかかる場合があります。 私は、Distribution または Process Capability プラットフォームのいずれかを使用してこれを自動化し、ppk、最適適合、その適合のパラメーター、およびターゲット ppk に基づく新しい制限セットを出力するスクリプトの作成を検討してきました。 同僚の中には、同じことを行うために Matlab でスクリプトを書いた人もいます。 JMP スクリプトを最適化するためのあらゆる努力にもかかわらず、Matlab スクリプトは依然として約 10 倍高速です。
改善してほしいことは何ですか?
スクリプト内で実行でき、レポート ウィンドウを作成しない JSL 関数を見てみたいと思います。 次の入力があります。
- 1xn 行列としての列のデータ、
- データに適合する分布のリスト、
- 使用する推奨 ppkmethod (スコア、パーセンタイル)、
- ターゲットppk
そして、次のように出力されます。
- 最適な分布の名前 (最小 AICC)
- 最適分布タイプの適合パラメータのベクトルまたはリスト
- ppk、
- 使用される ppkmethod (zscore またはパーセンタイル)、
- aicc (あると便利ですが必須ではありません)
- ターゲット ppk を使用して計算された新しい制限 (あると便利ですが、必須ではありません)
最後に、ベータ分布、指数関数分布、ガンマ分布、ジョンソン分布、対数正規分布、正規分布、正規混合分布、SHASH、ワイブル分布に適合できる必要があります。
この考え方がなぜ重要なのでしょうか?
(1) チームに JMP を使用してもらいたいのですが、私のスクリプトの実行に 30 分かかるのに、Matlab スクリプトは同じことを実行しても 1 分しかかからない場合、チームを説得するのはほぼ不可能です。 私のスクリプトが遅い理由は、10,000 列のレポート ウィンドウを作成するオーバーヘッドのためです。 代わりに、レポートの生成をスキップして、必要な結果だけを提供できる関数を使用してこれらの計算を実行できれば素晴らしいと思います。 これははるかに高速であり、コーディングも簡単になると思います。
(2) 10,000 列を超えるデータセットを分析できなければなりません。 12000 列でスクリプトを実行しようとすると、実行の途中でスクリプトが停止してしまうことに気付きました。 根本原因はまだ特定できていませんが、3600 列以下では正常に動作します。 レポート ウィンドウの生成に制限があり、エラーが発生しているのではないかと思います。
他に試したこと
1. Fit Censored() 関数と Fit Transform to Normal() 関数はどちらも、フィット パラメーターを取得するために使用できるという点で、私が要求している関数に似ています。 これらは ppk または新しい制限を計算しませんが、fit パラメーターを使用して ppk および新しい制限を自分で計算できます。 ただし、これらの関数は、必要なディストリビューションのサブセットのみをサポートします。
2. 現在、Python で何かを記述し、それを既存のスクリプトに組み込んで、配布プラットフォームとプロセス機能プラットフォームの使用を置き換えることを検討しています。 ただし、これにはかなり時間がかかります。
残念ながら、私の問題を再現するスクリプトはかなり長いです。 ご要望に応じて提供させていただきますが、上記の問題に関する私の説明で十分であれば幸いです。
私の詳細:
JMP プロ 17.2.0
MacOS ベンチュラ 13.6.1