Cosa ha ispirato questa richiesta di lista dei desideri?
Nella mia azienda dobbiamo calcolare ppk e nuovi limiti per set di dati contenenti ~ 10.000 righe x 10.000 colonne, e questo deve essere fatto su più set di dati semi-giornalieri. Questo può richiedere molto tempo. Ho esplorato la scrittura di script per automatizzare questa operazione utilizzando le piattaforme Distribution o Process Capability e generando il ppk, l'adattamento migliore, i parametri per tale adattamento e una nuova serie di limiti basati su un ppk target. Alcuni colleghi hanno scritto uno script in Matlab per fare lo stesso. Nonostante tutti i miei sforzi per ottimizzare il mio script JMP, lo script Matlab è ancora circa 10 volte più veloce.
Qual è il miglioramento che vorresti vedere?
Mi piacerebbe vedere una funzione JSL che possa essere eseguita in uno script e non crei alcuna finestra di report. Avrebbe questi input:
- i dati per una colonna come matrice 1xn,
- un elenco di distribuzioni da adattare ai dati,
- il metodo ppk preferito da utilizzare (punteggio, percentile),
- destinazione ppk
E produrrebbe quanto segue:
- Nome della distribuzione con l'adattamento migliore (AICC minimo)
- un vettore o un elenco dei parametri di adattamento per il tipo di distribuzione più adatto
- il ppk,
- metodo ppk utilizzato (punteggio z o percentile),
- aicc (bello da avere, ma non essenziale)
- nuovi limiti, calcolati utilizzando il ppk target (bello da avere, ma non essenziale)
Infine, dovrebbe essere in grado di adattarsi a queste distribuzioni: Beta, Esponenziale, Gamma, Johnson, Lognormale, Normale, Miscela normale, SHASH e Weibull.
Perché questa idea è importante?
(1) Voglio che il mio team utilizzi JMP, ma è quasi impossibile convincerli se l'esecuzione del mio script impiega 30 minuti mentre lo script Matlab fa la stessa cosa ma richiede solo 1 minuto. Il motivo per cui il mio script è più lento è dovuto a tutto il sovraccarico derivante dalla creazione di una finestra di report per 10.000 colonne. Sarebbe invece fantastico se questi calcoli potessero essere eseguiti con una funzione in grado di saltare la generazione di report e fornire solo i risultati di cui ho bisogno. Credo che sarebbe molto più veloce e più facile da codificare.
(2) Dobbiamo essere in grado di analizzare set di dati> 10k colonne. Ho notato che il mio script si ferma nel bel mezzo dell'esecuzione quando provo a eseguirlo con 12000 colonne. Non ho ancora identificato la causa principale, ma funziona correttamente per 3600 colonne o meno. Sospetto che potrebbe esserci una limitazione nella generazione della finestra del report che causa un errore.
Altre cose che ho provato
1. Entrambe le funzioni Adatta Censurato() e Adatta Trasformazione a Normale() sono simili alla funzione che sto richiedendo, in quanto entrambe possono essere utilizzate per ottenere i parametri di adattamento. Non calcolano ppk o nuovi limiti, ma posso utilizzare i parametri di adattamento per calcolare personalmente ppk e nuovi limiti. Tuttavia, queste funzioni supportano solo un sottoinsieme di distribuzioni che vorrei avere.
2. Attualmente sto esplorando la possibilità di scrivere qualcosa in Python e di incorporarlo nel mio script esistente, sostituendo l'utilizzo delle piattaforme Distribution e Process Capability. Questo però mi richiederà molto tempo.
Purtroppo gli script per riprodurre il mio problema sono piuttosto lunghi. Fornirò su richiesta, ma spero che la mia spiegazione del problema di cui sopra sia sufficiente.
Le mie specifiche:
JMP Pro17.2.0
MacOS Ventura 13.6.1