Qu'est-ce qui a inspiré cette demande de liste de souhaits ?
Dans mon entreprise, nous devons calculer le ppk et les nouvelles limites pour les ensembles de données contenant ~ 10 000 lignes x 10 000 colonnes, et cela doit être fait sur plusieurs ensembles de données semi-quotidiennement. Cela peut prendre très longtemps. J'ai exploré l'écriture de scripts pour automatiser cela en utilisant les plates-formes de distribution ou de capacité de processus et générer le ppk, le meilleur ajustement, les paramètres pour cet ajustement et un nouvel ensemble de limites basées sur un ppk cible. Certains collègues ont écrit un script dans Matlab pour faire de même. Malgré tous mes efforts pour optimiser mon script JMP, le script Matlab est toujours environ 10 fois plus rapide.
Quelle est l’amélioration que vous souhaiteriez voir ?
J'aimerais voir une fonction JSL qui puisse être exécutée dans un script et ne crée aucune fenêtre de rapport. Il aurait ces entrées :
- les données d'une colonne sous forme de matrice 1xn,
- une liste de distributions à ajuster aux données,
- la méthode ppk préférée à utiliser (score, centile),
- ppk cible
Et cela produirait ce qui suit :
- Nom de la distribution la mieux adaptée (minimum AICC)
- un vecteur ou une liste des paramètres d'ajustement pour le type de distribution le mieux adapté
- le ppk,
- méthode ppk utilisée (zscore ou centile),
- aicc (agréable à avoir, mais pas indispensable)
- nouvelles limites, calculées en utilisant le ppk cible (agréable à avoir, mais pas indispensable)
Enfin, il devrait pouvoir s'adapter à ces distributions : Beta, Exponential, Gamma, Johnson, Lognormal, Normal, Normal Mixture, SHASH et Weibull.
Pourquoi cette idée est-elle importante ?
(1) Je veux que mon équipe utilise JMP, mais il est presque impossible de les convaincre si mon script prend 30 minutes à s'exécuter alors que le script Matlab fait la même chose mais ne prend que 1 minute. La raison pour laquelle mon script est plus lent est due à toute la surcharge liée à la création d'une fenêtre de rapport pour 10 000 colonnes. Au lieu de cela, ce serait formidable si ces calculs pouvaient être effectués avec une fonction capable d'ignorer la génération de rapports et de fournir simplement les résultats dont j'ai besoin. Je pense que ce serait beaucoup plus rapide et plus facile à coder.
(2) Nous devons être capables d'analyser des ensembles de données > 10 000 colonnes. J'ai remarqué que mon script s'arrête au milieu de l'exécution lorsque j'essaie de l'exécuter avec 12 000 colonnes. Je n'ai pas encore identifié la cause première, mais cela fonctionne bien pour 3 600 colonnes ou moins. Je soupçonne qu'il peut y avoir une limitation dans la génération de la fenêtre de rapport provoquant une erreur.
D'autres choses que j'ai essayées
1. Les fonctions Fit Censored() et Fit Transform to Normal() sont similaires à la fonction que je demande, dans la mesure où elles peuvent toutes deux être utilisées pour obtenir les paramètres d'ajustement. Ils ne calculent pas le ppk ou les nouvelles limites, mais je peux utiliser les paramètres d'ajustement pour calculer moi-même le ppk et les nouvelles limites. Cependant, ces fonctions ne prennent en charge qu'un sous-ensemble de distributions que j'aimerais avoir.
2. J'explore actuellement l'écriture de quelque chose en Python et l'incorpore dans mon script existant, remplaçant ainsi l'utilisation des plateformes de distribution et de capacité de processus. Mais cela me prendra beaucoup de temps.
Malheureusement les scripts pour reproduire mon problème sont plutôt longs. Je fournirai sur demande, mais j'espère que mon explication du problème ci-dessus sera suffisante.
Mes spécificités :
JMP Pro 17.2.0
MacOS Ventura 13.6.1