Introduzione
La piattaforma Functional Data Explorer (FDE) in JMP è uno strumento molto utile da avere quando si modellano curve o dati spettrali come output. Ma cosa succede se ho più curve come output? E se ognuna di queste curve ha una priorità diversa per la mia attività? JMP può essere utilizzato per modellare, confrontare e ottimizzare più curve contemporaneamente? Mi sono state poste queste stesse domande un paio di volte nell'ultimo mese e (ovviamente) la risposta è "sì". Continua a leggere per scoprire come.
Sfondo
Per realizzare questo esempio, utilizzerò un file Mill DOE.jmp leggermente modificato dai dati campione. Il file è allegato a questa voce del blog. I dati rappresentano un esperimento progettato per ottimizzare un processo di laminatoio, con l'obiettivo di far sì che la curva dimensionale si restringa rapidamente. Ho aggiunto una colonna che tiene traccia del consumo energetico durante ogni esecuzione sperimentale. L'obiettivo di questa colonna è di ridurre al minimo il consumo energetico durante il processo. Ho anche aggiunto un batch di destinazione ai dati come Batch 0 e ho rimosso alcune delle altre colonne nella tabella dei dati.
Questo è ora un buon set di dati per illustrare come ottimizzare le curve concorrenti: mi aspetto che l'uso di più potenza faccia sì che il processo riduca più velocemente le dimensioni delle particelle e spero che ci sia un punto felice nello spazio di progettazione in cui l'uso di potenza può essere basso e in cui il processo di macinazione può essere rapido. Nel grafico sottostante, posso vedere che l'esecuzione DOE più veloce (linea rossa) è vicina al centro per l'uso di potenza e l'uso di potenza più basso (linea blu) è ampiamente al centro per il tempo del processo di macinazione. Le linee verdi rappresentano le curve target per ogni output.

Esploratore di dati funzionali
Immagino che i lettori sappiano già come usare la piattaforma FDE. Guarda questa eccellente panoramica di @Peter_Hersh se hai bisogno di un ripasso.
Concentrarsi su più output contemporaneamente è facile. Una volta caricati i target per ogni output, ho adattato i modelli B Spline a ciascuno, quindi ho fatto clic con il pulsante destro del mouse sulla casella delle schede in alto e ho selezionato Imposta stile > Diffusione orizzontale in modo da poter vedere entrambi i profiler affiancati. Una volta collegati i profiler (fai clic sul triangolo rosso del profiler e seleziona Impostazioni fattore > Collega profiler ), posso vedere i compromessi mentre ottimizzo un output. Ha senso che la dimensione più rapida si verifichi nell'angolo con perle alte, elevata resistenza delle perle, basso refrigerante, alta temperatura. Allo stesso modo, il consumo di energia più basso proviene da un angolo diverso in cui la temperatura e il flusso sono bassi.

Procedimento per ottenere entrambe le curve
Ciò che non posso ancora fare, però, è dire a JMP quale curva è più importante e poi usare gli strumenti di JMP per trovare automaticamente il punto ottimale in cui il processo è sia rapido che poco costoso. Ci sono almeno due metodi per farlo:
Metodo 1: Formule di colonna salvate
Questo metodo non funziona per ogni situazione, ma è molto veloce e semplice. Se le mie curve target sono sempre sopra o sotto tutte le altre curve, ovvero se sto cercando di massimizzare o minimizzare una curva, allora posso salvare le formule per ogni curva e usare il Prediction Profiler per vedere e ottimizzare entrambi i processi contemporaneamente.
- Per ciascuna delle curve, seleziona il triangolo rosso in Functional DOE Analysis. Seleziona Save Columns > Save Prediction Formula .

- Selezionare Grafico > Profiler , quindi selezionare le formule di previsione e fare clic su OK per continuare.

- Nel triangolo rosso del Prediction Profiler, seleziona Ottimizzazione e Desirabilità , attiva Funzioni di Desirabilità , quindi torna a quel menu e seleziona Imposta Desirabilità . Nelle finestre che compaiono, seleziona Riduci a icona , quindi assegna un'importanza di 1 a Dimensioni. Quindi, seleziona di nuovo Riduci a icona , ma questa volta imposta l'importanza per Potenza a 2. Ciò significherebbe che l'utilizzo di Potenza è due volte più importante del profilo di dimensioni.

- Fai clic tenendo premuto Alt su una qualsiasi delle curve nella sezione Tempo del Profiler, quindi seleziona Blocca impostazione fattore e fai clic su OK. (Bloccandolo, il Profiler non pensa di potersi spostare in punti diversi sulla curva come parte del processo di ottimizzazione.) Quindi, nel menu Ottimizzazione e desiderabilità, seleziona Massimizza desiderabilità . Modificando i livelli di importanza di ogni curva, quindi selezionando di nuovo Massimizza desiderabilità, cambierà dove si trova il punto ottimale.

Metodo 2: JMP esegue il calcolo
Il primo metodo funziona solo se sto cercando di minimizzare o massimizzare una curva. Fallisce se devo adattare una curva specifica che non è un massimo o un minimo. Quando una o più curve devono adattarsi a una forma che non è un massimo o un minimo, l'output di una tabella intermedia e quindi l'adattamento di un modello a tale tabella consente di ottimizzare più risposte funzionali. Per ottenere questo risultato, tornerò al mio output FDE originale:
- Alt-clic nello spazio bianco del Profiler per Time sull'output Size; assicurarsi che Lock Factor Setting sia selezionato, quindi fare clic su OK . Ripetere questa operazione sull'output Power. Se i profiler sono già collegati, il secondo output verrà automaticamente bloccato. Il blocco di questo fattore rende l'output del passaggio successivo molto più piccolo.
- Fare clic sul triangolo rosso vicino al Profiler FDOE per Dimensioni, quindi selezionare Tabella griglia di output .
- Nella tabella che si apre, rinomina la colonna "Errore integrato da Target 0" in "Errore dimensione".

- Ripetere i passaggi 2 e 3 per l'alimentazione, rinominando la colonna "Errore integrato" in "Errore alimentazione".

- Per semplificare le cose, puoi eliminare tutte le colonne in entrambe le tabelle della griglia, dopo le colonne "Errore" che hai rinominato in precedenza.

- Utilizza lo strumento Tabelle > Aggiorna per combinare le due tabelle. Dovrai abbinare tutte le prime cinque colonne, ma questo non significa molti clic: seleziona semplicemente tutte le opzioni tra Tempo e T(°C) in entrambi i gruppi di colonne, quindi seleziona Abbina .

Ora tutto ciò che devo fare è adattare un modello per minimizzare l'errore di ciascuna delle mie risposte. Una rete neurale è una buona scelta in questo caso.
Posso impostare Desirabilità in modo simile al metodo precedente. In questo caso, tuttavia, voglio ridurre al minimo l'errore dalla curva target per ciascuna delle mie risposte. Ciò che è bello di questo metodo è che funziona per qualsiasi curva target. Se imposto l'importanza relativa come prima, con Potenza due volte più importante di Velocità, il punto ottimale che ottengo è avere ogni input al massimo, tranne Flusso, che vorrei impostare al minimo. Ancora meglio, poiché ho ancora la mia piattaforma FDE originale aperta con i profiler affiancati, posso vedere automaticamente come appariranno i miei output, poiché tutti e tre i profiler sono collegati.

Conclusione
Ci sono probabilmente tutti i tipi di ragioni per cui una persona potrebbe voler ottimizzare più curve contemporaneamente. Ad esempio:
- Per le automobili, curve di efficienza del carburante e di potenza del motore.
- Per lo sviluppo di farmaci, curve di dissoluzione e spettroscopia NMR.
- Per i guru della finanza, mettere a confronto diverse curve rischio-rendimento.
Con i due metodi sopra descritti è possibile affrontare ciascuna di queste situazioni e, poiché vengono utilizzati tutti i dati funzionali, le risposte arrivano molto più rapidamente e con molta più precisione.
@Jed_Campbell grazie per questo fantastico tutorial! Ho una domanda: nella sezione "Metodo 2", la parte in cui si esegue l'output sulla griglia, si menziona che la nuova tabella dati ha una colonna chiamata " Errore integrato da Target 0". Da dove deriva? Manca un passaggio? Ho JMP Pro v.18 ma non riesco a trovare questa colonna. Grazie!
@dray173 la colonna "Integrated Error from Target 0" viene generata automaticamente quando si crea la tabella, ma solo se hai già detto a JMP qual è la funzione target. Ho praticamente sorvolato su questo nella sezione Functional Data Explorer, scusa. Immagino che tu abbia saltato questo passaggio. Se ho capito bene, per specificare il Target, devi selezionare Target Functions > Load dal Comandi outline in alto. Questo dovrebbe essere anche il primo passaggio e dovrebbe essere fatto prima di adattare qualsiasi modello.

Grazie per avermi aiutato a chiarire questo problema e fammi sapere se questa era la soluzione di cui avevi bisogno.