Pianificare ed eseguire un disegno di esperimenti (DOE) può essere un compito complesso che coinvolge diversi specialisti. Dopo l'esperimento, le sfide legate all'analisi, all'interpretazione e alla comunicazione dei risultati persistono, soprattutto quando le parti interessate hanno diversi livelli di competenza tecnica. Per semplificare questo processo e standardizzare il nostro flusso di lavoro, abbiamo sviluppato uno script che visualizza automaticamente i risultati del DOE. Lo script genera due grafici intuitivi che trasmettono efficacemente i risultati.
Il primo grafico illustra la variabilità totale di ciascuna variabile di interesse, indicando in che misura ciascuna variabile può essere influenzata secondo il DOE. Il secondo grafico riassume la sensibilità della variabile di interesse alle variazioni delle variabili di input.
Il nostro script è progettato per essere flessibile, consentendo l'aggiunta di nuovi calcoli e la normalizzazione dei grafici in base alle esigenze. Questo strumento ha migliorato significativamente la nostra efficienza, risparmiando circa due ore per grafico rispetto ai metodi manuali. Inoltre, il formato di visualizzazione standardizzato migliora la comunicazione con gli stakeholder non tecnici, rendendo i risultati del DOE più accessibili e facili da comprendere.
Noi di NNE aiutiamo molti dei nostri clienti a realizzare progetti di sperimentazione (DoE) per diversi motivi. Ad esempio, test di robustezza, miglioramento dei processi, validazione. Una delle sfide più frequenti che affrontiamo è la comunicazione dei risultati agli stakeholder. Le sfide potrebbero essere molteplici. Alcune di queste potrebbero non essere così orientate alla statistica o alla matematica come noi.
In alcuni casi, potrebbe trattarsi anche di una piccola fobia della matematica. Molti di loro non hanno familiarità con l'interfaccia di JMP, quindi potrebbe risultare un po' intimidatoria, oppure la complessità del modello che abbiamo creato potrebbe essere una sfida da analizzare o comprendere.
Un altro aspetto importante è che alcune delle nostre analisi hanno richiesto molto tempo e impegno. Possono risultare un po' noiose. Quando ci si annoia, si commettono anche errori, e questo non va bene.
Quello che volevamo fare era creare un metodo che ci permettesse di creare grafici in modo rapido e semplice. Potremmo mostrarli agli stakeholder e comunicare i risultati. Dovrebbero essere creati automaticamente, quindi ci sarebbero meno errori, e dovrebbe essere veloce, così da non perdere troppo tempo ad aspettare i risultati. Dovrebbe essere in grado di gestire molti modelli, perché lavoriamo con molti modelli.
Avevamo già elaborato i grafici in precedenza. Ci è voluto comunque molto tempo. In genere, abbiamo creato due grafici, uno per visualizzare l'intervallo del risultato e un altro per visualizzare la sensibilità del risultato alle variabili che utilizziamo nel nostro DoE.
Abbiamo trovato un modo per automatizzare l'analisi, in cui eseguiamo i calcoli richiesti esportando i nostri modelli in Python, risolvendo alcuni problemi di ottimizzazione globale e quindi visualizzando i risultati in JMP, per poi normalizzarli anche lì per consentire confronti.
Potete vedere uno dei grafici qui. È quello che abbiamo creato qui. Questo è il grafico dell'intervallo. Qui abbiamo un grafico della sensibilità. Per il grafico dell'intervallo, abbiamo fatto un piccolo esempio. I dati provengono da cultivar di soia, diverse varietà di soia, per le quali abbiamo modellato la resa del raccolto e poi creato questo grafico.
Posso mostrarti il processo di creazione di questo grafico. È piuttosto semplice. Abbiamo i dati qui. Abbiamo, in qualche modo, creato un modello. Quella virgola appare qui. Poi, dal nostro strumento, premiamo semplicemente un piccolo pulsante e il programma viene eseguito. Per alcuni modelli, soprattutto se ci sono molti livelli per alcune delle variabili nominali, può essere un po' impegnativo. Deve risolvere un problema di ottimizzazione globale per ogni combinazione, ma anche nei casi più ampi, otteniamo i risultati abbastanza velocemente.
Qui potete vedere il risultato. Ci sono voluti circa 20 secondi. Da qui, possiamo semplicemente tracciare ciò che vogliamo. In generale, verrà creato un grafico. Potete personalizzarlo come preferite. Alcune di queste variabili servono solo per alcune analisi. Qui, abbiamo quasi istantaneamente un grafico in cui possiamo vedere esattamente ciò che vogliamo, comunicandolo facilmente alle parti interessate.
Ad esempio, per questo set di dati, potremmo voler trovare la coltura migliore da utilizzare in base alla stagione. Il punto mostrato qui è il valore nominale. Questo è il valore, la resa che otterremo se utilizziamo la coltura e tutte le altre impostazioni impostate sul valore intermedio. L'intervallo, la barra qui, mostra l'intervallo che il valore può assumere.
Per questa coltura, può assumere un valore compreso tra 4.700 e circa 4.000. Le linee tratteggiate rappresentano i limiti di controllo, ovvero la deviazione standard libera nominale più meno quella nominale, insieme, in questo caso, ai limiti target e spec. Possiamo vedere immediatamente che per la stagione 1, abbiamo subito tre o quattro buoni candidati che rientrano ampiamente nei nostri limiti e persino uno che è quasi esattamente nei limiti target.
Possiamo arrivare alla seconda stagione, dove generalmente si trovano un po' più in basso, ma possiamo comunque trovarne alcuni che potrebbero funzionare. Questo era un caso d'uso. Ora possiamo chiudere tutti questi casi. Perché, un'altra cosa, questo aveva solo una variabile di output.
Un altro caso è quello in cui possiamo avere più di un output, e questi output possono avere scale diverse. Abbiamo qui un altro esempio. Si tratta di dati simulati, ma basati su un esempio reale. Volevamo analizzare un prodotto. Era un prodotto industriale. Hanno misurato molte dimensioni e volevamo vedere quali dimensioni fossero più critiche per il risultato.
Qui abbiamo due variabili esplicative e cinque dimensioni, tutte con scale diverse. Posso saltarlo. Possiamo eseguire di nuovo il nostro modello. Ci vogliono circa 5 secondi per tracciare il grafico, e ora abbiamo immediatamente i nostri risultati. Possiamo anche vedere rapidamente il problema con scale diverse, perché se provassimo solo a mostrarlo, potremmo vedere solo la dinamica della dimensione 4, perché è molto più grande delle altre. Potremmo provare a scalarla, ma avremmo lo stesso problema. Le dimensioni 1 e 2 sono più grandi della dimensione 3, quindi possiamo vederne solo una o due alla volta.
Quello che facciamo invece è normalizzare i nostri grafici in qualche modo. Potremmo, ad esempio, qui, normalizzarli al target. Qui, inseriamo semplicemente la nostra variabile qui. Ora l'abbiamo normalizzata, quindi il target è sempre a zero, il limite di specifica superiore è a uno e il limite di specifica inferiore è a meno uno. Ora possiamo vedere immediatamente, beh, per la dimensione 3, se abbiamo impostato 2, siamo sempre fuori specifica.
Possiamo vedere che sia la dimensione 1 che la dimensione 2 non presentano una variabilità così elevata rispetto al limite di specifica. Nella configurazione 2, la dimensione 2 varierà molto, a seconda delle variabili di input. In questa configurazione, dovremmo controllare la temperatura in modo piuttosto accurato.
Questo funziona se abbiamo limiti di specifica del target. In caso contrario, si potrebbero fare altre cose. Ne abbiamo un altro che è semplicemente normalizzato ai limiti di intercettazione e di specifica. Se non abbiamo un target specifico, vogliamo solo assicurarci di essere entro i limiti di specifica, e questo è normalizzato qui. Possiamo averne uno finale normalizzato alla deviazione standard dell'intercetta, che funziona sempre, ma potremmo comunque incorrere nel problema di una scala diversa.
Ad esempio, qui possiamo vedere che la dimensione 4 è piuttosto grande rispetto alla varianza residua, mentre la dimensione 1 non ha limiti di specifica molto grandi rispetto alla varianza residua.
Infine, potresti non essere interessato solo a cosa possono assumere i tuoi valori, ma anche a come vorresti controllare queste variabili di risultato. Qui abbiamo un altro set di dati in cui i dati riguardano le calorie bruciate in funzione di età, altezza, peso, sesso e cose del genere. Vogliamo sapere quante calorie potrei bruciare come fattore.
Abbiamo il set di dati. Abbiamo il nostro modello che arriva proprio qui. Premiamo il pulsante. Ci vogliono alcuni secondi e poi abbiamo un grafico. Qui, tracciamo le sensibilità. Quali sono le sensibilità? Cioè di quanto la variabile di risultato cambierà a seconda delle impostazioni nominali e per ogni variabile continua che hai.
Ad esempio, in questo caso, possiamo vedere che, se facessi un po' di esercizio e lo facessi per un altro minuto, mi aspetterei di bruciare circa 5,5 calorie in più. Se lo rendessi più intenso, aumentando la mia frequenza cardiaca di uno, aumenterei le calorie bruciate di circa 2,5 calorie.
Le altre variabili del modello potrebbero non avere lo stesso impatto pratico. La mia età potrebbe non essere così importante... Il mio peso potrebbe non essere così importante. Tuttavia, questo è ovviamente indipendente dalla scala della variabile. Se posso variare la mia frequenza cardiaca più della durata, potrebbe comunque avere un impatto significativo.
Abbiamo un altro modo per normalizzare, che consiste semplicemente nel prendere il gradiente, prendere la sensibilità e moltiplicarlo per quanto può essere grande l'intervallo... Quanto posso variare la mia frequenza cardiaca rispetto a quanto posso variare la durata.
Qui possiamo vedere che, mentre prima la frequenza cardiaca non aveva lo stesso impatto, ora possiamo vedere che la frequenza cardiaca potrebbe avere un impatto altrettanto significativo sulle calorie bruciate rispetto alla durata, perché potrei variare la mia frequenza cardiaca più della durata.
Possiamo anche vedere che, semplicemente durante l'allenamento, sarei in grado di bruciare quasi più calorie. Facendo esercizio più intenso, potrei bruciare circa 60 calorie in più rispetto al previsto. Possiamo effettivamente vedere quanto posso variare il mio peso. Il mio peso potrebbe variare, o l'età potrebbe variare. Questo potrebbe comunque avere un effetto pratico, che prima non potevamo vedere, quando consideravamo solo l'individuo, gli effetti di permanenza stimati.
Ora chiudiamo tutto. Torniamo all'inizio. Quello che stavamo cercando di fare era rendere automatico questo metodo di analisi degli esperimenti. Abbiamo un metodo che ora funziona. È relativamente veloce e puoi personalizzarlo in base alle tue esigenze, a seconda di come vuoi che appaia il tuo grafico. Questo è tutto.