| Oratore |
Trascrizione |
| Jordan Hiller |
uscire. |
| Phil Kay |
Bene, grazie per essere qui con noi. Sono Phil Kay. Sono il responsabile della formazione presso JMP e darò il via a questa presentazione con un esempio interattivo di SVEM, ovvero la modellazione di ensemble autovalidata. |
| |
Parlerò di cosa è SVEM e del meccanismo di funzionamento, poi Pete e Trent condivideranno degli esempi, |
| |
casi di studio e simulazioni, che spiegano davvero perché vorresti farlo. Presenterò questo su un |
| |
Si tratta di uno studio di caso molto semplice, quindi inizialmente potrebbe non sembrare chiaro il motivo per cui vorresti farlo, ma spero che capirai il meccanismo dopo che te lo avrò spiegato. |
| |
Ok, ora interrompo il video e mi concentro solo sulla dimostrazione del software. |
| |
Abbiamo un diario JMP che condividiamo con voi, così potrete accedervi dal post nella community JMP su Community.JMP.com. |
| |
L'esempio che useremo è un classico esempio DOE. Si tratta dei dati di rimbalzo, che potete ottenere dai file di aiuto di JMP. |
| |
Quindi sono tre fattori, 15 run. È un design Box-Behnken e abbiamo una risposta lì, che è elastica, quindi davvero molto semplice, standard, |
| |
Il tradizionale DOE vecchio stile. |
| |
Non vi è alcuna vera sfida nel modellare questi dati e, se adattiamo un modello di superficie di risposta, vediamo che questi comportamenti curvilinei, questi effetti quadratici e anche queste interazioni tra fattori risultano importanti. |
| |
Vediamo quindi come potremmo modellare tutto questo utilizzando l'approccio SVEM. |
| |
Quindi, se vogliamo modellare questo usando SVEM, la prima cosa che noterete è che abbiamo 30 righe di dati, quindi abbiamo effettivamente duplicato ogni riga di dati, il che potrebbe sembrare un po' folle. Potrebbe sembrare un imbroglio. Questo è un trucco chiave della metodologia SVEM. |
| |
Vedrai che ci sono altre colonne qui, e quella chiave è questo peso di convalida. Quindi, rappresentiamolo graficamente così puoi vedere cosa significa. |
| |
Quindi potete vedere che, per ciascuna delle nostre righe di dati, ciascuna delle nostre esecuzioni, abbiamo in realtà coppie di esecuzioni, quindi l'esecuzione numero uno, potete vederla qui. |
| |
Stiamo effettivamente ponderando ciascuna di queste esecuzioni nel set di addestramento, che è pari a zero, o nel set di convalida, che è pari a uno. E potete vedere che per ogni coppia |
| |
Queste ponderazioni sono inversamente proporzionali. Quindi, ad esempio, nell'esecuzione numero sette, si può vedere che ha una ponderazione elevata nell'addestramento, zero nel set di convalida e una ponderazione bassa corrispondente nel set di convalida. |
| |
Ora, questi sono stati assegnati in modo casuale e possiamo... |
| |
Cliccando qui, possiamo ridisegnarli, in modo da poter riassegnare i pesi. E ancora, se una riga ha un peso elevato nel training set, ad esempio la riga numero sei qui ha un peso elevato nel training set, avrà un peso corrispondentemente basso nel validation set. |
| |
Quindi stiamo raddoppiando le nostre righe di dati. |
| |
E lo useremo per l'autovalidazione. Quindi, quello che possiamo fare in realtà è usare una variante della convalida Hold Back, dove |
| |
invece di trattenere completamente una riga di dati nel set di convalida, quello che faremo è trattenere parti di ogni riga di dati, in modo che ogni riga possa effettivamente essere all'interno del set di addestramento e del set di convalida e, cosa importante, possiamo riassegnare quei pesi |
| |
ripetutamente, il che è sufficiente quando si tratta della modellazione d'insieme. |
| |
Ok, quindi per riassumere abbiamo... abbiamo praticamente duplicato ogni riga di dati e stiamo assegnando dei pesi a ciascuna riga in modo tale che alcune righe siano maggiormente presenti nell'addestramento e altre nel set di convalida. |
| |
Ora possiamo adattare un modello utilizzando la convalida. |
| |
Quindi qui stiamo usando GenReg e come puoi vedere stiamo utilizzando un set di convalida (ignoriamo semplicemente il messaggio di errore). |
| |
Stiamo usando Lazo e la convalida come selezione del modello. E, in questo caso, non è stato selezionato alcun effetto attivo nel modello. Quindi si tratta di un modello di superficie di risposta e abbiamo usato la convalida come metodo di selezione, usando Lazo. |
| |
e abbiamo stabilito che in realtà non è attivo alcun effetto, quindi abbiamo un modello senza alcun effetto attivo. |
| |
Ciò che possiamo fare è ridisegnare nuovamente quei pesi, in modo da poter ricalibrare le nostre colonne. |
| |
E possiamo vedere che questa volta abbiamo un modello diverso. Quindi, in realtà, alcuni degli effetti ora diventano attivi, quindi la silice è attiva in questa interazione tra silice e zolfo. |
| |
Salviamo quel modello. |
| |
Quindi ora, con il nostro |
| |
tabella dati, puoi vedere che lì abbiamo una colonna di formula modello salvata. |
| |
Ridisegniamo di nuovo quei pesi. Quindi li ridisegniamo di nuovo, in modo che alcune righe siano più pesanti in fase di training, altre più pesanti in fase di validazione. |
| |
E abbiamo un altro modello e lo salviamo ora. Quindi ora abbiamo |
| |
due righe di...due colonne con formule di previsione salvate. |
| |
E possiamo rifarlo. Quindi ridisegnerò i pesi e salverò la formula di previsione. Ho appena scaricato uno script che lo fa per noi. E poi crea questa media del modello, quindi abbiamo effettivamente calcolato la media dei nostri tre modelli salvati. |
| |
Quindi ogni singolo modello ha utilizzato una ponderazione di convalida diversa. |
| |
Ogni modello era diverso, alcuni erano migliori di altri. Il punto chiave è che quando facciamo la media di questi, |
| |
La media di questi è il modello migliore finora. Quindi, come potete vedere, questo in realtà sembra piuttosto vicino al modello originale che abbiamo adattato usando metodi standard sullo standard... |
| |
il set di dati originale. |
| |
E possiamo continuare a farlo. Possiamo farlo 10 volte, quindi lo ripeteremo. E potete vedere ridisegnando i pesi; ogni volta otteniamo un modello leggermente diverso. |
| |
E possiamo salvare ciascuno di questi diversi modelli. |
| |
E alla fine si ottiene una media che probabilmente è il modello migliore. |
| |
E, in effetti, se confrontiamo questo con il modello originale che abbiamo visto dall'analisi standard di questi dati, |
| |
come puoi vedere i due modelli sono in realtà piuttosto in accordo. |
| |
Quindi in questo caso, utilizzando questa modellazione di ensemble auto-validata si è arrivati allo stesso modello che otterremmo utilizzando lo standard |
| |
regressione lineare. |
| |
Quindi voglio ripassare i punti chiave di ciò che avete visto. E come dicevo, passeremo a Pete e Trent, che spiegheranno le motivazioni che ci hanno spinto a voler utilizzare questa nuova tecnica di modellazione. |
| |
Ciò che abbiamo fatto è stato duplicare le righe di dati originali. |
| |
Ciò significa che possiamo applicare una ponderazione casuale per stabilire quanta parte di ogni coppia di righe è in fase di addestramento rispetto a quella di convalida. |
| |
Questo ci permette di utilizzare la convalida. Non saremmo in grado di usarla per un set di dati così piccolo. Non avrebbe senso conservare una riga di dati completa, ma cosa possiamo fare con questo set duplicato? |
| |
è avere una validazione ponderata. Quindi adattiamo un modello usando la selezione Lazo in questo caso e la selezione Lazo ha utilizzato questa colonna di validazione ponderata. |
| |
Quindi ridisegnamo quei pesi. Assegniamo casualmente pesi diversi a quelle coppie di righe e riadattiamo il modello. Nel nostro caso, abbiamo ripetuto questo processo 10-15 volte, ma in pratica, per ottenere un buon modello di ensemble autovalidato, dovremmo ripetere questo processo 100 o più volte. |
| |
E ogni modello è a sua volta...ogni singolo modello in ogni fase di quel processo iterativo non è particolarmente utile, ma la media del modello o l'insieme lo è, come abbiamo visto con il nostro modello finale che abbiamo ottenuto come media di tutte quelle iterazioni. |
| |
Quindi, adesso vorrei passare la parola a Pete, che ci parlerà di un caso di studio che in realtà illustra perché si vorrebbe usare questo insolito metodo per modellare dati come questo. |
| Peter Hersh |
Grazie mille, Phil. Ora condivido il mio schermo qui. |
| |
E vediamo un esempio di quando potremmo |
| |
usare questo metodo. Quindi eccomi qui |
| |
esaminiamo prima i risultati, quindi stiamo esaminando un paio di progetti che sono DOE molto piccoli, quindi un DOE da sei, otto e dieci prove, con tre fattori. |
| |
E questi sono progetti di superfici di risposta che sono super saturati o saturi in natura e sono tutti progetti ottimali, quindi si tratta di un numero molto piccolo di esecuzioni |
| |
Per raggiungere il nostro obiettivo. Ecco dove stiamo andando. Torniamo indietro e parliamo del design e di come siamo arrivati fin qui. |
| |
COSÌ. |
| |
Questo è un caso di studio in cui stiamo cercando di massimizzare il tasso di crescita di un microbo regolando diverse combinazioni di nutrienti. E come ho detto prima, stiamo usando un design super saturo I ottimale e stiamo regolando il numero di prove. |
| |
Si tratta di dati simulati, in cui sono attivi tutti gli effetti principali, nonché tutte le variabili quadratiche. |
| |
Quindi, per impostare tutto questo, abbiamo iniziato con i nostri tre fattori. Ho progettato il mio modello. Se non avete mai progettato un modello saturo o super saturo in JMP, |
| |
Il modo per farlo è trattare gli effetti che non sono quelli principali come se fosse possibile, e questo permette di avere meno tentativi o lo stesso numero di tentativi degli effetti modello. E così ho generato i miei progetti lì. |
| |
E ho seguito questo processo che Phil ha descritto così splendidamente, di ricampionamento dei dati, ottenendo quei pesi invertiti...inversamente proporzionali, che sono fondamentali per questo processo. |
| |
Abbiamo fatto un paio di discorsi e ho solo i codici QR per quelli. |
| |
Questa tecnica è stata sviluppata da Chris Gotwalt e Phil Ramsey, che l'hanno presentata in alcuni interventi precedenti. E quest'ultimo |
| |
Il codice QR era un componente aggiuntivo che configurava questa colonna di convalida nelle versioni precedenti di JMP. A partire da JMP 16, è possibile farlo in modo nativo nel software, ma se si utilizza JMP 15, è necessario utilizzare questa configurazione aggiuntiva. |
| |
E come ha detto Phil, quindi un |
| |
Alcuni modelli individuali potrebbero non adattarsi molto bene ai dati, alcuni si adatteranno bene, altri non avranno alcun termine. |
| |
Ma questo è solo un esempio, dove potete vedere ogni singolo modello. Alcuni sono solo un'intercetta, altri hanno un fit piuttosto scarso, e qualche modello occasionale funziona piuttosto bene. |
| |
E quindi è come ha descritto Phil: ognuno di questi ha un peso ricalcolato diverso. Quindi stiamo ottenendo un modello leggermente diverso e andiamo avanti e li salviamo. Questo è il primo passo. |
| |
Il passo successivo è stato calcolare la media di questi modelli. Come potete vedere, calcolando la media di questi modelli, sempre più numerosi, l'adattamento del modello migliora sempre di più. Quindi i singoli modelli non sono eccezionali, ma il modello medio complessivo ci fornisce un buon adattamento. |
| |
E l'ultimo passaggio di cui volevo parlare era che questi modelli sono influenzati dalla natura. Come avete visto con il primo modello realizzato da Phil, non c'erano effetti attivi. Quindi |
| |
quando si esegue una tecnica di selezione di modelli o variabili con il proprio modello, a volte si ottiene un modello in cui quella specifica variabile non entra. |
| |
Quindi, se diamo un'occhiata a queste distribuzioni, puoi vedere |
| |
tutti questi sono effetti attivi e hanno una distribuzione attorno a 5, che è la dimensione dell'effetto, ma hanno anche questa barra qui sotto che è 0. |
| |
Quindi non sopravvaluteremo l'effetto così spesso come otteniamo 0 per controbilanciare questo, quindi questo sarà distorto verso un valore inferiore, quindi faremo un |
| |
piccolo trucco per correggere questi modelli, dove noi |
| |
tratta questo modello come un predittore in un modello dei minimi quadrati, e ciò eliminerà tali distorsioni. Ti spiegherò nel dettaglio come fare. |
| |
Ma alla fine otteniamo quell'ottimo risultato che ho condiviso con un numero di esecuzioni molto limitato. Quindi, la motivazione per cui si usa SVEM è la possibilità di prevedere e creare un modello decente con meno esecuzioni rispetto a quanto si potrebbe fare senza usare questa tecnica. |
| |
Bene, passiamo a JMP qui |
| |
E |
| |
seguire questo processo. |
| |
Bene, ecco il DOE a sei run dell'esempio che ho mostrato, dove abbiamo i nostri tre fattori e il nostro tasso di crescita. E questo dopo aver costruito il modello. |
| |
Ecco come appare il risultato, che abbiamo completato. Abbiamo quindi sei esecuzioni con sei risultati. Il prossimo passo è creare la colonna di convalida e, per farlo all'interno di JMP, andremo semplicemente ad analizzare la modellazione predittiva. |
| |
creiamo una colonna di convalida e poi, invece di una colonna di convalida, creeremo una tabella di convalida automatica. |
| |
Ok, ecco come ho fatto. L'ho già fatto, quindi non ripeterò il procedimento. |
| |
Ma ecco quei dati con i dati ricampionati e quel peso inversamente correlato, come dimostrato da Phil. Abbiamo un peso elevato abbinato a un peso basso della serie ripetuta. Dopo averlo fatto, procediamo e creiamo il nostro modello. |
| |
In questo caso, ho usato un modello GenReg e si desidera selezionare una delle tecniche di selezione delle variabili. Quindi, se procedo con l'esecuzione, voglio fare qualcosa come la selezione in avanti con Lazo. |
| |
o una di quelle tecniche di selezione. E Trent entrerà più nel dettaglio su queste tecniche di selezione e su quelle che hanno studiato. |
| |
Quindi, dopo aver eseguito il modello, vedi che JMP ha selezionato alcuni effetti attivi. Ne ha rilevati alcuni, ma puoi vedere qui. |
| |
quella distorsione che stiamo osservando, dove entrambi questi effetti principali dovrebbero essere attivi, ma risultano pari a 0. Quindi, quando salvo questo nella tabella dati, |
| |
Creerò una nuova colonna come quella mostrata da Phil, poi ricalcolerò il peso e lo ripeterò più e più volte. Ecco un semplice script per ripetere l'operazione 100 volte, e |
| |
Saremo lieti di condividerlo. Ed è molto semplice: basta copiare e incollare il tuo script, il tuo script modello, qui, per poter riprodurre quello che abbiamo fatto qui. |
| |
Ok, quindi ecco il risultato finale, dove abbiamo esaminato il nostro DOE, i nostri risultati e poi abbiamo |
| |
i 100 modelli che ho salvato |
| |
e nascosto qui. E poi il modello finale, che è |
| |
una media di tutti i 100 modelli. E l'ultimo passaggio che vogliamo fare è quello del debiasing. Quindi tutto ciò che faremo è trattare questo |
| |
modello medio come predittore del tasso di crescita. |
| |
Quindi qui puoi vedere il modello originale che abbiamo |
| |
Ha una pendenza molto più ripida, quindi ha un R quadrato decente, ma non è così buono come speravamo di fare. Voglio dire, anche con sei piste... sei piste sono una buona soluzione, ma |
| |
Se riusciamo a rimuovere questo bias, forse possiamo fare un po' meglio. Quindi, la configurazione è molto semplice. Prendiamo semplicemente il tasso di crescita. La nostra risposta è la nostra Y. Aggiungiamo |
| |
modello d'insieme qui, media di tutti quelli |
| |
modelli individuali, come nostro predittore. Eseguiamo questo e otteniamo un risultato, e potete vedere che il grafico dei dati effettivi rispetto a quelli previsti è molto migliore. E se eseguiamo un confronto, potete vedere che la rimozione di quel bias ha un grande effetto positivo. |
| |
Giusto prima di restituirlo a Trent, volevo mostrarne un altro |
| |
scorrere qui, che è fondamentalmente solo un riassunto di |
| |
che noi... (ho perso la barra delle applicazioni, eccola lì)... che vi invitiamo caldamente a usare |
| |
e date un'occhiata a questa tecnica, ma non è una tecnica magica che funzionerà sempre in ogni situazione. Ma quando la si prova in progetti di screening e cose del genere, potrebbe essere una tecnica molto utile che... |
| |
aiutarti a realizzare cose che potresti non essere in grado di fare con le tecniche di modellazione standard. E con questo, passo la parola a Trent che ha |
| |
un po' più di dettagli su come questo viene fatto e il |
| |
informazioni lì. Quindi Trent, vuoi toglierle? |
| Trento Lemkus |
Sì, grazie, Peter. Lo apprezzo. |
| |
COSÌ |
| |
Sto condividendo il mio |
| |
PDF. Voglio solo essere sicuro che si tratti effettivamente di condivisione e che tutti possano vederlo. |
| Peter Hersh |
Sì. |
| Trento Lemkus |
Ok, fantastico. Quindi |
| |
Durante la presentazione, Phil e Peter hanno presentato casi di studio che, a mio avviso, sono aneddoti fenomenali che dimostrano la potenza di SVEM e quando e perché utilizzarlo. |
| |
Ciò che abbiamo fatto per il nostro articolo di ricerca, che è attualmente in fase di revisione paritaria, è stato condurre una quantità smisurata di studi di simulazione per dimostrare... per vedere empiricamente come si comporterebbe SVEM in un contesto predittivo. Quindi |
| |
Il prossimo... ho una serie di diapositive che vi mostrerò. So che potrebbe sembrare un po' noioso e arido, ma penso sia fondamentale discutere i dettagli. |
| |
prima di passare a qualcosa di un po' più divertente, che è un esempio di come abbiamo utilizzato... |
| |
come abbiamo utilizzato JMP, JSL e come ho eseguito le simulazioni come esempio e per mostrarvi come appare parte dell'output, nonché i risultati. |
| |
Quindi, prima di tutto, lo schema e gli obiettivi dei nostri studi di simulazione erano principalmente |
| |
Volevamo creare un'architettura di simulazione realistica. Quindi, volevamo che le nostre simulazioni imitassero il DOE industriale reale il più fedelmente possibile. |
| |
In secondo luogo, volevamo vedere come le tecniche contemporanee di costruzione di modelli o di selezione di modelli, così come SVEM, si comportano quando si concentrano principalmente sulla pura previsione, |
| |
Chiaro e semplice. Quindi volevamo vedere come, quando adattiamo un modello a un progetto, questo fa previsioni basate su un insieme di dati veritieri o attendibili, o, scusate il mio accento, dati. |
| |
E da questo, se possiamo simulare queste esecuzioni uniche il più possibile, computazionalmente fattibile, vogliamo rendere l'inferenza il più possibile reale... vogliamo fare... dedurre risultati del mondo reale il più vicino possibile in modo da poter |
| |
prescrivere le impostazioni e dove e come utilizzare SVEM, poiché SVEM è ancora agli inizi. |
| |
Quindi, prima di tutto, quali progetti abbiamo utilizzato nelle nostre simulazioni? Abbiamo utilizzato progetti di screening definitivi. |
| |
e abbiamo utilizzato modelli Box-Behnken in cui il vero modello generante sottostante nei nostri modelli era costituito da modelli quadratici completi, o più colloquialmente noti come modelli del secondo ordine. E il motivo per cui abbiamo scelto questi modelli è perché A) per i modelli di screening definitivi, |
| |
Più effetti principali hai, più i modelli diventano saturi e poi supersaturi, il che significa che hai molti meno gradi di libertà quanto più alti sono gli effetti principali. Mentre con i tuoi progetti Box-Behnken con gli effetti principali che abbiamo usato, |
| |
non ti imbatti in quello scenario. Quindi abbiamo una... abbiamo una giustapposizione tra due scenari, dove da una parte abbiamo |
| |
gradi di libertà adeguati con i nostri progetti Box-Behnken per stimare i nostri coefficienti quando si applica una tecnica di selezione del modello e, nel caso di progettazione di screening definitivo, abbiamo quasi |
| |
Nella maggior parte dei nostri casi, avevamo un design super saturo, quindi avevamo un numero inadeguato di gradi di libertà. Quindi, in altre parole, in parole povere, |
| |
non siamo riusciti a stimare tutti gli effetti quando si utilizzano tecniche di costruzione di modelli contemporanei, come le selezioni avanzate, i lazo, i selettori di Dantzig e così via, |
| |
Il che ci porta a vedere quali algoritmi di modelli effettivi abbiamo utilizzato per le nostre simulazioni. Quindi, per i modelli SVEM, tenendo presente che se... |
| |
Se non hai ben compreso cosa sia SVEM, è molto importante che tu riprenda alcune delle presentazioni precedenti a cui Peter faceva riferimento. |
| |
Ma dobbiamo usare SVEM con una tecnica di costruzione del modello sottostante, come la selezione diretta, il pruned forward e il Lasso, che è ciò che utilizziamo per i nostri studi di simulazione. |
| |
Nei nostri casi di modelli non SVEM, utilizziamo gli stessi algoritmi di costruzione del modello, ma abbiamo anche incorporato il selettore Dantzig, che è piuttosto popolare nel DOE, |
| |
nonché il design dello screening definitivo, che è pertinente esclusivamente allo screening definitivo e non viene utilizzato su altri design. |
| |
Inoltre, utilizziamo un criterio informativo chiamato AICc o AIC corretto, molto comune nel DOE e in realtà noto per la selezione di modelli molto parsimoniosi. |
| |
Quindi, come potete vedere, stiamo cercando di incorporare tecniche contemporanee che sono molto attuali nell'uso del DOE industriale, che si attiene al punto centrale... punto centrale che ho mostrato nella diapositiva iniziale, che è |
| |
vogliamo imitare il mondo reale il più fedelmente possibile attraverso i nostri studi di simulazione, in modo da poter rendere questi dati empirici... |
| |
In questo modo potremo valutare empiricamente le prestazioni predittive di questi diversi algoritmi di costruzione di modelli. E speriamo di poter dimostrare empiricamente che SVEM funziona o supera la concorrenza. |
| |
Quindi, per la struttura di simulazione effettiva, abbiamo eseguito 1.000 simulazioni per ogni algoritmo di costruzione del modello. Ad esempio, se stessimo adattando un modello forward con AICc, |
| |
con ognuna di quelle 1.000 esecuzioni avremmo generato un modello reale, la verità, e poi avremmo aggiunto del rumore o. |
| |
rumore gaussiano (che è molto comune nel mondo accademico e nella ricerca), |
| |
Creando così un set di addestramento, se vogliamo, e un set di verità, in modo che, una volta adattato un modello, possiamo vedere come quel modello predice rispetto alla verità. E rieseguiamo e rigeneriamo quei set di dati in modo casuale 1.000 volte. |
| |
Per l'iperparametro SVEM, di cui non spiegherò il significato, abbiamo utilizzato un nBoot pari a 200. In parole povere, stavamo sostanzialmente adattando 200 modelli e ne abbiamo fatto la media per ottenere il nostro modello SVEM finale. |
| |
I progetti sono stati anche iterati su diverse funzionalità. Quindi il numero di effetti principali |
| |
Per i progetti di screening definitivi, avevamo quattro effetti principali e otto effetti principali. Per i nostri progetti Box-Behnken, avevamo |
| |
Tre effetti principali e cinque effetti principali. Ciò significa, per fare un esempio, che per il nostro DSD, ad esempio, dove K è otto, si hanno otto effetti principali. Se si ha un modello quadratico completo, |