Noi di Waters abbiamo parlato con scienziati e ingegneri nei laboratori di bioprocesso e abbiamo espresso interesse nell'utilizzo di analisi avanzate per ottenere informazioni utili allo sviluppo di bioprocessi. Il principale ostacolo che ci hanno segnalato è il tempo necessario per ottenere i dati e le informazioni da queste analisi avanzate. Quando parliamo di bioprocessi, ci concentriamo principalmente sui processi a monte e comprendiamo che molti tra il pubblico non ne sappiano molto. Ho pensato ad alcune foto per illustrare il tipo di laboratori di cui stiamo parlando e le attività che generano i campioni.
I tipi di laboratori, laboratori di sviluppo di bioprocessi a monte e laboratori di selezione di cloni, in genere utilizzano bioreattori automatizzati, come nella foto in alto a sinistra, o bioreattori da banco, da un paio di litri, a volte anche da 5 litri. Il giorno della vita di un ingegnere di bioprocessi che conduce questi esperimenti è proprio quando vengono eseguiti. In genere, la durata dell'esperimento è di circa due settimane e ogni mattina vengono prelevati campioni da quei bioreattori, come potete vedere in quelle foto, e poi vengono eseguite analisi su di essi.
Ora, quando si tratta di analisi di routine, quindi analisi chimiche di base come pH, ioni metallici e cose del genere, vengono eseguite immediatamente dall'ingegnere bioprocessore stesso. Ma le analisi avanzate vengono in genere inviate a un laboratorio di analisi centrale. Poi c'è questo ritardo di cui abbiamo parlato, di diverse settimane prima che ottengano i risultati e i dati. Non si adatta perfettamente alla cadenza di progettazione di nuovi esperimenti.
Ciò che stiamo cercando di fare in Waters è cambiare questa situazione, in modo che l'analisi avanzata possa essere eseguita dagli ingegneri di processo stessi, idealmente durante l'esecuzione della coltura cellulare, in modo che possano utilizzare le informazioni fornite da quei dati per progettare l'esperimento successivo e trarne beneficio. In Waters, abbiamo sviluppato nuovi sistemi LCMS che possono essere utilizzati anche da chi non è un analista, quindi ingegneri, chimici, ecc. Quello che riteniamo particolarmente adatto ai laboratori di bioprocesso è il sistema LC-MS BioAccord, che può essere utilizzato anche da chi non è un analista.
Ora, se lo facessero in un laboratorio di bioprocessi, il vantaggio sarebbe che avrebbero un quadro molto più completo di ciò che accade durante i loro esperimenti. Oltre al tipo di analisi chimiche di routine e alle misurazioni cellulari che eseguono, otterrebbero anche molte più informazioni su ciò che accade in quelle cellule, nei bioreattori, in termini di cosa consumano in quantità maggiore, cosa consumano in quantità minore, quali metaboliti e sottoprodotti producono e molte più informazioni sui prodotti e sulla loro qualità durante il processo di coltura cellulare.
Ci sono molti dati extra che potranno ottenere e che riteniamo abbiano un grande valore. Il rovescio della medaglia, però, è che più strumenti diversi utilizzano, più metodi diversi utilizzano, più dati dovranno ripulire e aggregare prima di poterne ricavare informazioni. Lascio la parola al mio collega di CSL.
Ciao, sono Lalit. Faccio parte di CSL Seqirus e lavoro nel team upstream come scienziato. Come utente del BioAccord, vorrei condividere la mia esperienza. In CSL, utilizziamo un approccio basato sui dati o un approccio basato sulla DoE per condurre i nostri esperimenti. Amber 15 e Amber 250 sono principalmente i due strumenti ad alta produttività che utilizziamo. Amber 15 ha 48 bioreattori con un volume di lavoro di 15 ml. Amber 250 ha 24 reattori con un volume di lavoro di 200 ml. Con i progetti basati sulla DoE, generiamo molti dati che vengono poi elaborati tramite il BioAccord LC-MS. È molto utile in termini di identificazione e quantificazione dei componenti, grazie alla capacità di rilevare più di 200 componenti dalla sua libreria. Questo rende molto più semplice non dover utilizzare altri strumenti.
Allo stesso tempo, la quantità di dati che si ottiene utilizzando BioAccord LC-MS potrebbe essere piuttosto impegnativa. È molto utile e consente di analizzare tutti i dati, ma è molto difficile trarre conclusioni in base al volume. È qui che il componente aggiuntivo Waters JMP si rivela molto utile. È possibile adattare i dati tramite il componente aggiuntivo ed è in grado di separare i metaboliti in base ai percorsi. Questo semplifica l'analisi di ciascuno di questi componenti e il loro collegamento ai parametri di processo DoE, che possono essere utilizzati per migliorare ulteriormente il processo o ottimizzarlo. In generale, se considero il valore di BioAccord LC-MS e del componente aggiuntivo Waters JMP, ritengo che siano molto utili per gli scienziati a monte.
La visualizzazione e l'analisi dei dati che i miei colleghi di JMP vi mostreranno sono state generate in un esperimento di cui abbiamo fornito una panoramica generale qui. Gli esperimenti di coltura cellulare sono stati eseguiti sul sistema Amber 250 di cui vi ho mostrato un'immagine in precedenza. Si trattava di un sistema a otto vie, quindi avevamo otto diversi bioreattori. È stato uno studio di 14 giorni; ogni mattina venivano prelevati campioni da ciascun bioreattore per l'analisi sui sistemi Nova BioProfile FLEX2 e BioAccord LC-MS.
Il progetto sperimentale era piuttosto semplice. Variava la velocità di sparge del gas, la velocità di sovrapposizione dell'aria e la concentrazione del tampone. L'alimentazione della struttura del bioreattore era identica per ogni bioreattore, cambiavano solo questi fattori, la sovrapposizione dello sparge e il tampone. Il sistema Amber 250 è dotato di sensori integrati per la temperatura del gas e il pH. Con il sistema FLEX2, questo viene utilizzato per misurare parametri come la conta cellulare, la vitalità cellulare, l'ammoniaca, il pH, eccetera. Infine, il sistema BioAccord viene utilizzato per misurare il titolo e il metodo standard per farlo è un metodo di cromatografia proteica A. Aggregati, quindi impurità di specie ad alto peso molecolare e impurità di specie a basso peso molecolare.
Glicoprofili, quindi stavamo osservando quali glicoforme vengono prodotte durante l'esperimento di coltura cellulare. Avrei dovuto dire che si trattava di una linea cellulare CHO progettata per esprimere un anticorpo monoclonale. Ci sarebbero diverse glicoforme di quell'anticorpo che sarebbero attributi qualitativi piuttosto importanti. Poi il terreno di coltura esausto, ovvero il terreno che circonda le cellule e che contiene i nutrienti e i metaboliti che sono stati in un certo senso espulsi dalle cellule. Misuriamo lì, cose come amminoacidi, vitamine, metaboliti del TCA, quindi i metaboliti del ciclo di Krebs, e poi anche altri metaboliti delle vie metaboliche. Sono questi i dati che i nostri colleghi di JMP vi mostreranno mentre vengono analizzati e visualizzati.
Per facilitare l'analisi e la visualizzazione dei dati, con l'aiuto dei nostri colleghi di JMP, abbiamo sviluppato un componente aggiuntivo per il monitoraggio dei bioprocessi per JMP, disponibile sul marketplace. Utilizzando questo componente aggiuntivo, è possibile importare i file di dati dai diversi analizzatori, che aggiungeranno automaticamente i metadati, puliranno i dati e li aggregheranno in un'unica tabella, che verrà poi utilizzata per creare visualizzazioni.
Il componente aggiuntivo crea visualizzazioni per aiutarti a iniziare, sia in formato grafico a barre che in formato grafico lineare. Inoltre, per prepararti all'analisi multivariata, crea una tabella MVA, rimodellata per essere più adatta all'analisi MVA con una colonna per analita. Sì, ora passo la parola al mio collega di JMP.
Grazie, Pat. Mi chiamo Greg Flexman. Sono un Systems Engineer presso JMP e inizierò il processo in cui esamineremo come gestire JMP. Il monitor di processo Waters Biopress è disponibile sul marketplace JMP e include un set completo di documenti PDF con istruzioni su come importare i dati e seguire questi passaggi per creare i file. Pat ha realizzato un video molto utile, ma lo acquisterò a metà strada.
Dopo aver importato tutti i dati, viene visualizzata una serie di report. Sono disponibili sia il formato grafico a barre che quello lineare. È qui che l'ampia gamma di analiti che questo BioAccord può misurare inizia a farsi notare, perché abbiamo un DoE con otto bioreattori. Possiamo vedere non solo il titolo in tutti questi punti temporali, ma anche tutti i fattori che contribuiscono alla produttività delle cellule.
Possiamo vedere i frammenti e gli aggregati, così come le cellule principali. Possiamo vedere tutti questi diversi cicli, la sintesi del DNA, i glicosilati. Davvero utile per esplorare i dati. Proseguendo, i dati erano in un formato alto. Lo esamineremo velocemente. 12.000 righe, molte meno colonne, e questo ha l'aspetto di un database LIMS. In questo modo, tutta questa ampia varietà di analiti misurati e i loro valori vengono visualizzati in una tabella alta.
Il componente aggiuntivo genera anche un'ampia tabella chiamata analisi multivariata. Di default, lo script termina con questa tabella. Questo offre la possibilità di creare grafici a dispersione, ad esempio per analizzare il titolo in base allo stress metabolico e iniziare a esplorare alcune delle relazioni presenti nei nostri dati. Questo è anche un ottimo punto di partenza per ulteriori analisi.
Inizierò con questa ampia tabella, e in precedenza ho approfondito un po' aggiungendo alcune colonne di formule. Possiamo iniziare a rappresentarla graficamente. Potremmo osservare il titolo nel tempo. Di nuovo, è qui che stiamo cercando di arrivare, di comprendere queste relazioni. Ho calcolato un valore per il titolo incrementale. Questa è la percentuale di crescita giorno dopo giorno, quindi vediamo alcuni crescere fino all'80%, e nei giorni successivi, stiamo crescendo solo, diciamo, del 10% circa, con un ciclo di 1,1 al giorno.
Ho notato questo grosso problema il settimo giorno. Giusto per ridere, definirò una fase iniziale e una fase finale. Quello che farò è anche calcolare questo incremento relativo del titolo per tempo, dove ho fatto la media di tutti questi punti temporali. Possiamo osservare, ad esempio, che il nostro bioreattore con le prestazioni peggiori era molto più debole degli altri in questa fase iniziale e anche basso nella fase finale.
La nostra migliore performance, possiamo vedere che ha funzionato piuttosto bene all'inizio, ed è lì che si è davvero fatta notare. Poi è stato un po' più vicino al centro del gruppo qui in seguito, ma questo V7 è piuttosto interessante. Si è mostrato molto forte all'inizio, per poi calare più tardi. Mi chiedo quale sarebbe stato il suo potenziale se ci fossero state le giuste condizioni per permettere a quelle cellule di continuare a produrre.
JMP ci offre una serie di strumenti per comprendere queste diverse condizioni di processo. Possiamo effettuare un adattamento Y per asse, ma i parametri sono così tanti. Applicheremo uno strumento di screening, chiamato screening di risposta. Per prima cosa vi mostrerò su cosa si basa, e poi invocheremo quella piattaforma di analisi. Se dovessimo effettuare un intero adattamento Y per asse, ne ho solo due qui con un bivariabile iniziale e uno finale. Possiamo vedere questo acido isocitrico, un r quadrato molto forte all'inizio, una significatività molto alta all'inizio, ma meno tardi.
Potremmo anche considerare quest'altra nicotinamide, molto forte nella fase tardiva, con una significatività statistica molto forte nella fase tardiva, meno precoce. Con i valori r quadrato e p, questo ci dice molto sulla forza della relazione. Se stiamo davvero cercando di capire l'influenza di questi numerosi parametri, questo sarà molto utile. Ora eseguirò questa piattaforma di screening delle risposte e vedremo r quadrato e il valore p per molti di questi. Ora, quando effettueremo così tanti confronti, ci aspetteremo alcuni falsi positivi.
C'è una correzione chiamata tasso di falsi positivi. Abbiamo questo valore p del tasso di falsi positivi. Poiché è molto difficile osservare questi valori p con numeri così piccoli, è conveniente osservare il valore logaritmico. Quindi, prendendo il logaritmo, è molto facile da vedere. 0,05 si traduce in due. Possiamo vedere il confine tra ciò che è più significativo. C'è quell'isocitrico per il primo, e possiamo anche osservarlo per il secondo. Noterete che le classifiche per il primo e il secondo sono diverse. Quello che farò ora è preparare un grafico parallelo. Lo farò con uno script, ma per darvi un suggerimento, ho creato una tabella di dati combinati e poi ho eseguito un'operazione di divisione. Ecco, ecco il punto finale a cui siamo arrivati. Lo rifaremo qui sullo script. Questo ci darà un grafico parallelo. Poi ho aggiornato la tabella dal nostro riepilogo per includere la classe di analiti.
Questo è tutto. Ora possiamo vedere che, per la fase iniziale e quella tardiva, rispetto a questo logaritmo di due in cui c'è significatività, il ciclo TCA nella fase iniziale è il più statisticamente significativo. Il parametro al suo interno, che è il più forte, è ancora una volta l'isocitrico. Possiamo vedere che nella fase tardiva queste relazioni cambiano molto. Qui, nella fase tardiva, la situazione è completamente diversa. C'è la nicotinamide e altre vitamine che non sono così importanti. Questo è solo un esempio di alcune delle analisi grafiche che si possono fare qui.
Ora vorrei introdurre un altro concetto e passerò a JMP su una tabella dati diversa. Non si tratta di BioAccord, ma farò un rapido esempio didattico per una funzionalità di JMP Pro chiamata "Functional Data Explorer". Immaginiamo di avere un bioreattore molto semplice in cui abbiamo eseguito 20 diverse analisi e stiamo osservando solo la torbidità nel tempo. Vogliamo capire come alcune di queste variabili... forse abbiamo fatto un progetto di esperimenti per pH e temperatura. Abbiamo queste analisi in diverse condizioni di processo. Potete vedere le righe evidenziate che saltano, quindi questa è la prova di un DoE. Voglio avviare il Functional Data Explorer, ed è davvero interessante. Quello che farà è analizzare tutte queste curve e usare questi modelli wavelet per descrivere gran parte della variabilità.
Ho accorciato questo passaggio a tre, ma potete lasciare che sia JMP a decidere dove posizionarlo. JMP Pro determina le componenti principali e fornisce un profiler che mostra come queste componenti principali influenzano la forma del processo. Poi arriva la battuta finale. Ora possiamo vedere come queste variabili supplementari influenzano la forma. Questa è una sorta di introduzione all'esploratore di dati funzionali, dove possiamo vedere come le variabili supplementari influenzano la forma. Faccio una pausa e passo la parola al mio amico Ben, che fa delle cose davvero interessanti riassumendo tutto questo.
Mi chiamo Ben Barroso-Ingham. Sono un ingegnere di sistema per JMP e sono coinvolto in questo progetto perché ho una notevole esperienza nel campo dei bioprocessi. La parte su cui mi sto concentrando è che con questo componente aggiuntivo di Waters otteniamo molti di questi analiti in un formato ben strutturato. Molto spesso lavoriamo con i DoE, dove modifichiamo questi fattori e queste condizioni. Vogliamo vedere se questi analiti cambiano e come cambiano.
La sfida è che, se prendiamo come esempio i numerosi analiti che escono dall'apparecchiatura, potremmo averne più di 70 da analizzare. Se volessimo adottare un processo molto manuale, ad esempio prendendo uno dei nostri fattori DoE, potremmo osservare cosa succede passando da impostazioni basse ad alte su quei fattori e vedere se la forma dell'analita cambia nel tempo.
Quelli che non cambiano, potremmo non considerarli importanti. Quelli che cambiano, invece, sono causati da fattori esterni. Forse hanno un significato biologico importante. Forse è qualcosa che potremmo intrinsecamente collegare a un'importante caratteristica produttiva su scala più ampia, qualcosa a cui vogliamo prestare attenzione.
Procedere a occhio è un'operazione molto lunga. Se lo facciamo con più di 70 analiti, ci vorranno settimane per arrivare a destinazione. Ho visto questo set di dati e ho subito iniziato a pensare alle funzionalità di JMP per le righe con un'esplorazione funzionale dei dati. Si tratta essenzialmente di un modo molto rapido per esaminare le forme, trovare quell'elenco e restringere il campo a quelle che in definitiva sono le modifiche più importanti in quel processo.
Quello che voglio raggiungere è l'obiettivo finale. Se ho tutti questi analiti, ciò di cui ho bisogno sono in realtà due strumenti. Il primo è un elenco ristretto di quelli che sono cambiati quando un fattore è stato alterato, e l'altro è osservare questi analiti e come cambiano in termini di forma. Cosa succede quando modifichiamo le impostazioni di quei fattori in quel processo?
Utilizzando JMP Up, possiamo ottenere qualcosa di simile a questo: ho tutti i miei fattori DoE in basso. In questo caso, il tasso di sovrapposizione dell'area, le concentrazioni del tampone, le interazioni di questi effetti e poi gli analiti che appaiono e che sono stati significativamente influenzati da questi fattori. Ho più di 70 analiti. Quello che potete vedere qui è un elenco ristretto con l'entità della variazione di quella forma nel processo.
Quello che potrei fare, ad esempio, è osservare il glucosio qui. Quando la velocità di sovrapposizione dell'aria è cambiata, la forma è cambiata. Possiamo passare il mouse sopra e vedere, sì, la forma è cambiata durante quel processo. Forse possiamo osservare l'acido isocitrico. Possiamo vedere che è effettivamente influenzato sia dalla concentrazione del tampone che dalla velocità di sovrapposizione dell'aria.
Uno degli aspetti dell'utilizzo dell'FDE è che possiamo ottenere questo tipo di analisi e visualizzazione simile a un grafico logaritmico in un processo standard dei minimi quadrati per scoprire quali fattori contano. In questo caso, quale amiloide è cambiato. Come complemento, possiamo anche utilizzare un DoE funzionale. Probabilmente abbiamo molta familiarità con lo strumento profiler. Possiamo effettivamente utilizzare un profiler per osservare le forme e come qualcosa cambia nel tempo.
In questo caso, ho, sai, un analita. Questo è un acido biidrossiglutarico e la sua forma cambia nel tempo a condizioni stabilite. Che aspetto ha quando modifico il tasso di sovrapposizione o la concentrazione del tampone? Che effetto ha sul profilo? Posso abbinarlo abbastanza bene a questa visualizzazione che ho creato qui, e posso dire, giusto, il mio glucosio è cambiato qui a causa del loro tasso di sovrapposizione.
Potrei filtrare un elenco di tutti gli analiti e visualizzarli qui. Ora sto guardando il glucosio. Posso vedere l'impatto della mia velocità di sovrapposizione dell'aria su quel processo. Posso anche vedere quale effetto non ha alcun effetto. Quando modifico la concentrazione del tampone, non influisco in alcun modo sul glucosio in quel processo.
Il funzionamento è molto simile a quello che ho descritto: osserviamo visivamente, chiedendoci se c'è un cambiamento di forma o no. JMP Pro utilizza i punteggi FPC, un metodo quantitativo per misurare l'entità del cambiamento di una forma. Se abbiamo un punteggio FPC pari a 0 e improvvisamente passa a 10, è un indicatore di un cambiamento di forma in quel processo. Possiamo usare JMP e sfruttare la sua capacità di generare questi punteggi per ottenere rapidamente un elenco dei cambiamenti di forma e un'idea di cosa è stato influenzato quando abbiamo tonnellate di analiti da analizzare.
Il flusso di lavoro è questo: per ogni analita che esce, ad esempio, dall'aggiunta di dati alle acque, utilizziamo Functional Data Explorer per adattare quelle forme. Otteniamo quei punteggi, la base dei punteggi di forma. Poi facciamo come faremmo con un DoE standard, chiedendoci: quei termini DoE che stiamo usando sono dovuti ai punteggi FPC? Li modificano? C'è un effetto significativo?
Per fare un rapido esempio, ho appena scelto uno degli analiti studiati per questo bioreattore e vi mostrerò l'obiettivo finale di un'analisi FDE: prendiamo quell'analita e ogni bioreattore coinvolto nel processo e aggiungiamo una linea di adattamento. Ogni bioreattore si adatta il più possibile ai dati emersi da quel processo.
Quindi questo viene convertito in punteggi FPC. Valori per ogni bioreattore in cui il punteggio di forma per questo è 0, il punteggio di forma per questo è 100 in quel processo o qualsiasi altro valore. Possiamo guardare i riepiloghi delle funzioni e vedere: ho un punteggio FPC del primo bioreattore di -6.000. L'altro è 13.000 per il bioreattore 2. C'è una differenza in quella forma.
Utilizziamo quindi i DoE per collegare il tutto e dire: "Beh, quella forma è causata dai fattori che stiamo utilizzando?". Possiamo effettivamente entrare e, per impostazione predefinita, quando eseguiamo un DoE funzionale, testiamo per vedere se il termine ha un effetto significativo su quell'FPC. Quando osservo l'FPC 1 in questo indicatore ed eseguo un modello, un DoE funzionale, mi dice: "Sì, c'è un effetto significativo". Il tasso di sovrapposizione dell'aria sta modificando quel punteggio. Non è solo la forma a cambiare, è che il cambiamento effettivo è causato da uno dei nostri fattori DoE.
Questo è essenzialmente ciò che ho fatto all'inizio del processo. L'intera tabella è il risultato di questa operazione, che ho eseguito ogni volta, raccogliendo tutte le informazioni sui termini attivi in quel processo, e poi visualizzandole e dicendo: "Esiste, se c'è un termine lì, è qualcosa di significativo in quel processo". Quindi, quello che stiamo facendo è anche ottenere automaticamente una formula di previsione in cui possiamo esaminare, come ho mostrato in precedenza, gli effetti di ciascun fattore sulla forma di ciascun analita.
Tutte queste informazioni vengono raccolte fondamentalmente per ogni analita in quel processo per comporre lo strumento finale mostrato, esaminando una visualizzazione e il profilo dello strumento. In definitiva, questo consente di individuare rapidamente dove quegli analiti sono cambiati e di restringere il campo fino a dove tali cambiamenti di fattore hanno causato un'alterazione degli analiti che potrebbe avere un impatto sul processo di produzione.
Forse stiamo assistendo a un cambiamento inaspettato nella relazione tra analiti. Forse c'è un fattore chiave che ha modificato uno dei nostri analiti, modificando anche i nostri processi di produzione. Possiamo usare questo strumento per analizzare la situazione. Il diario, lo dico subito, ma potrebbe essere interessante. Il diario sarà disponibile se siete interessati e potrete dare un'occhiata al processo di analisi, a cui verranno aggiunti anche altri dettagli.
Grazie mille e questo set di dati mi è piaciuto tantissimo, è davvero ricco, contiene un sacco di cose interessanti e ho ancora un paio di cose che vorrei aggiungere al nostro flusso di lavoro. Finora abbiamo visto come il componente aggiuntivo Waters può assemblare i dati provenienti dallo strumento e trasformarli in un formato gradevole per l'analisi e JMP. Poi abbiamo già visto alcuni modi basilari per creare grafici accattivanti, iniziare a raccontare una storia e scoprire cosa sta succedendo, le diverse relazioni tra le variabili.
Ben ci ha anche offerto un'interessante introduzione a un approccio basato su curve più funzionali, che vorrei approfondire ulteriormente nelle potenziali relazioni, soprattutto tra i fattori DoE e tutto ciò che stiamo misurando. Per concludere, volevo presentare un paio di aspetti aggiuntivi che ritengo estremamente potenti nel framework JMP e che potrebbero rivelarsi molto preziosi sia per comprendere cosa sta accadendo nel sistema, sia per prendere decisioni chiave, ad esempio modificando alcuni fattori o prevedendo eventi, per poi magari prendere decisioni non valide su alcuni punti chiave del processo.
Cominciamo da qui... Questa è la tabella che deriva dal componente aggiuntivo Waters. La cosa importante che volevo menzionare, che è il mio primo argomento principale, è notare che le righe, abbiamo righe in questa tabella, 120 in totale. Ma notate che abbiamo una variabile di raggruppamento, il bioreattore. Queste prime 15 righe che ho appena evidenziato provengono tutte dal primo bioreattore, e questo è ciò che in gergo statistico è noto come disegno a diagramma diviso perché i fattori DoE, che qui sono: tasso di sovrapposizione dell'aria, tasso di sparge al di sopra della concentrazione.
Sono costanti per l'intero bioreattore. Sono impostati per l'intera durata e i 15 punti corrispondono a 15 giorni. Questo potrebbe anche essere visto da una prospettiva di serie temporali. Questo è ciò che Ben voleva dire con le curve. Ma solo da una prospettiva di progettazione sperimentale. Dobbiamo prestare attenzione alla struttura del progetto quando ci occupiamo di modelli statistici.
In particolare, JMP è davvero solido e, anche tradizionalmente, da molti anni in SAS utilizziamo il cosiddetto modello misto. Si tratta di un modello che consiste sia di effetti fissi che casuali. Oggi non abbiamo tempo di approfondire la teoria dei modelli misti, ma la conclusione di base è che il bioreattore è il nostro modello misto, con effetti casuali, il nostro cosiddetto grafico intero in uno scenario a grafico diviso, noto anche come fattore difficile da modificare nelle nostre piattaforme DoE.
Il concetto è che se vogliamo trarre conclusioni, diciamo inferenze causali su questi fattori DoE, è fondamentale utilizzare un modello misto per garantire che le conclusioni statistiche riflettano correttamente il disegno sperimentale. È facile. C'è una facile trappola in cui cadere. Supponiamo di ignorare questo aspetto e di iniziare a fare, diciamo, una semplice ANOVA sui fattori DoE rispetto a un risultato più stretto o qualsiasi altro risultato che potrebbe interessarvi, e di eseguire un'ANOVA unidirezionale ingenua, per esempio, o fattoriale.
Le inferenze che ne derivano sono in realtà distorte, perché non si è tenuto conto del fatto che tutti questi gruppi di misurazioni sono correlati o raggruppati perché si verificano all'interno dello stesso bioreattore. Il modo più appropriato per gestire la situazione è con il modello misto. Anche in questo caso, si tratta di un argomento piuttosto complesso, ma oggi ne affronteremo uno molto semplice.
Per ulteriori approfondimenti, c'è un bel libro intitolato JMP per modelli misti che consiglio vivamente a chi vuole davvero approfondire l'argomento. È molto pratico e, una volta che si inizia a vedere, i modelli misti tendono a spuntare ovunque, semplicemente perché i dati e gli esperimenti tendono a non essere solo le classiche osservazioni indipendenti che diamo per scontate in statistica 101. Di solito ci sono dei fattori di clustering in gioco, come in questo caso con il bioreattore.
Per impostare tutto questo, partiamo da un'idea molto semplice: configuriamo un modello misto e JMP. È possibile adattarlo sia in JMP che in JMP Pro. Passiamo alla versione Pro. La piattaforma Pro ha alcune funzionalità in più, quindi procediamo con quella. Vogliamo entrare nel modello di adattamento. Entriamo e modelliamo in modo più preciso come risposta, e poi abbiamo i fattori che vogliamo inserire come cosiddetti effetti fissi. Procediamo e aggiungiamo alcuni termini fattoriali. Elaboreremo tutti gli effetti principali e poi tutte le interazioni bidirezionali.
Ecco la parte fondamentale. Per passare alla modalità modello misto, è necessario selezionare la personalità del modello misto. Notate che vengono attivate queste schede aggiuntive. Esistono due tipi di modelli misti: uno, quello che useremo oggi, in cui utilizziamo effetti casuali, e un'altra classe completamente diversa in cui eseguiamo misure ripetute con strutture diverse. Non tratteremo quest'ultimo tipo oggi, ma potete vedere che è qui che entra in gioco parte della complessità.
Per ora, però, utilizziamo il modello misto più semplice possibile, appropriato per una configurazione a grafico diviso come questa, in cui prenderemo il nostro bioreattore (che, come noto, deve essere una variabile nominale, non continua) e lo aggiungeremo come effetto casuale. Abbiamo tre effetti fissi o fattori DoE con le loro interazioni e poi questo effetto casuale. Questa è la configurazione che si desidera utilizzare per qualsiasi tipo di modellazione statistica di dati come questi.
Procediamo con l'esecuzione. L'esecuzione è rapida. Giusto per darvi un'idea del tipo di cose che vedrete, a questo punto potete iniziare a trattarlo come un'analisi della varianza, ma noterete che ci sono alcuni output aggiuntivi. Ad esempio, qui otteniamo una stima della componente di varianza del bioreattore, che in questo caso risulta negativa. È un po' insolito, ma in realtà indica una certa concorrenza all'interno di ciascun bioreattore.
Potrebbe avere senso perché ci sono nutrienti che vengono consumati, e quindi se uno aumenta, è probabile che l'altro diminuisca. È uno scenario chiuso e fisso, quindi potrebbe avere senso. In genere, questo sarà positivo se le misurazioni sono correlate positivamente. È un modo per misurare la correlazione all'interno di un bioreattore. Quindi, in genere, l'attenzione principale sarà sui fattori DoE. Dato che qui possiamo iniziare a esaminare i test e in questo caso non vediamo differenze significative per il più stretto, solo per questo semplice modello.
Ma questo è solo un punto di partenza. Probabilmente vorrete aggiungere altre covariate e adattare un modello più completo che tenga conto del sistema. Ma per oggi, volevo solo sottolineare questo punto chiave sull'utilizzo di un modello misto in casi come questo, in cui si ha una configurazione di split plot o misure ripetute all'interno di un meccanismo di blocco.
Questa è la prima analisi che voglio mostrarvi. Ora passiamo a un concetto più predittivo. Se notate, ognuno dei piccoli segmenti di cui abbiamo parlato affronta domande leggermente diverse. Questa è la potenza e la flessibilità di JMP, e questo è un set di dati davvero interessante con molte domande diverse che possiamo porci.
Ora spostiamo la nostra domanda dai fattori DoE a un'idea più predittiva, e definiamo un'idea di base. Cosa succederebbe se provassimo a fare una previsione? Supponiamo di condurre questo esperimento in diretta, di aver appena completato il 13° giorno e di voler prevedere cosa accadrà domani, il 14° giorno, ma disponiamo solo di dati aggiornati a oggi. Come potremmo impostare un problema di previsione di questo tipo?
Il primo passo fondamentale in JMP è che vogliamo effettivamente manipolare un po' i dati, e vogliamo effettuare una cosiddetta suddivisione dei dati, in cui ora pensiamo a una serie temporale all'interno di ciascun bioreattore e, eseguendo le tabelle, dividerò. Ora puoi creare una tabella, la cosiddetta tabella ampia, che ora appare così, dove abbiamo solo otto righe, una riga per bioreattore, e tutte le misurazioni sono state ora distribuite in colonne diverse.
Potete vedere qui, qui ci sono quelli più ristretti con una colonna al giorno, e lo stesso vale per tutte le altre variabili che abbiamo misurato. Nella terminologia delle serie temporali, queste sono note come variabili di ritardo. Ora abbiamo questa cosiddetta tabella ampia, adatta al problema della modellazione predittiva. Con solo otto righe, dobbiamo essere molto attenti. È molto facile sovradimensionare i dati in questo modo.
Di solito, nella pratica, avrete probabilmente molti più dati di questi, ma per questo piccolo esempio, passiamo in rassegna un paio di cose a scopo illustrativo per mostrarvi come consiglierei di eseguire la modellazione predittiva e come procedere. Esistono molti modi diversi per farlo, dalle classiche serie temporali, abbiamo altre piattaforme predittive in JMP. Voglio mostrare quello che considero forse il modo più moderno ed efficace per fare previsioni. Che per me è nato da molti anni di partecipazione a competizioni Kaggle, che tendono tutte ad essere di natura predittiva, e alcune cose si imparano a proprie spese partecipando a tutte quelle competizioni.
Quello che vi mostrerò oggi, lo considero vicino, se non addirittura perfetto, a quelle che potrebbero essere considerate le migliori pratiche per fare previsioni. La prima cosa che in genere si vuole fare è impostare alcuni fold, e l'idea qui è quella di voler eseguire la cosiddetta convalida incrociata K fold, in cui l'idea è di prendere una frazione delle righe della nostra tabella e metterle da parte. Quindi, l'idea è di addestrare un modello su una porzione di dati e poi testarlo su un altro set.
Come sapete, JMP ha introdotto questo tipo di funzionalità in JMP da molti anni, anche se tradizionalmente abbiamo utilizzato quella che è nota come suddivisione a tre vie con test di convalida dell'addestramento. Qui faremo solo una serie di suddivisioni a due vie, che chiamiamo semplicemente addestramento e convalida. Bisogna fare attenzione alle cosiddette perdite e, qualunque cosa si mantenga, non si vuole che l'algoritmo la consideri mai durante l'addestramento, perché si rischia di falsare i risultati.
L'idea ora con K fold è di prendere questa variabile qui chiamata fold A. Abbiamo solo otto righe. Questa è impostata per fare un quintuplo, dove assegniamo numeri casuali da 1 a 5, ma lo facciamo poiché ce ne sono solo otto, un paio di punti in cui c'è solo una riga che è tenuta fuori e poi le altre tre ne abbiamo due.
Potrebbe anche avere senso fare per cosa... Potrebbe essere un po' più chiaro in questo caso fare un quadruplo, dove dovremmo tenere due righe alla volta e poi ciclarle e adattare il modello quattro volte. Questo è lo scenario di addestramento di base che consiglierei, anche per piccoli set di dati come questo, forse anche perché dobbiamo stare molto attenti e attenti a non sovra-adattare i dati, soprattutto perché useremo quelli che considero i due metodi più potenti, gli alberi boosted implementati nel componente aggiuntivo XGBoost, e poi adatteremo una moderna rete neurale profonda utilizzando il componente aggiuntivo Torch per il deep learning. Entrambi sono componenti aggiuntivi disponibili sul marketplace JMP.
Diamo prima un'occhiata a XGBoost e a come configurarlo una volta installato il componente aggiuntivo, che poi diventa un'opzione nel menu. Puoi usare questa funzione per creare colonne di pieghe K per creare pieghe. L'ho già fatto, quindi passiamo direttamente alla piattaforma.
Qui la configurazione è simile a prima, ma ora stiamo di nuovo pensando alla previsione. Quello che vogliamo fare, ho delle variabili di raggruppamento qui, quindi espandiamole. Supponiamo di voler prevedere il titolo 14, che ho qui come la nostra Y, e ora abbiamo molte opzioni su cosa usare come input. Certo, inseriamo i nostri fattori DoE lì, e poi prendiamolo come un modello di stile lag molto elementare, prendiamo i valori precedenti del titolo, che sono 13, e inseriamoli come le nostre X. Ora, ci sono letteralmente oltre 1.000 potenziali predittori qui, ma ancora una volta, per semplicità, cerchiamo di semplificare.
Se hai più dati, sicuramente li vorrai includere. Potresti includerli nel tuo modello. Ma qui, con solo otto righe, stiamo solo cercando guai se iniziamo a esagerare. In genere, queste variabili di ritardo tendono ad essere predittori molto potenti, come puoi immaginare. Se sai... Se sai cosa è successo oggi, probabilmente sarà simile. Se guardi la traiettoria precedente, queste saranno in genere ottimi predittori. Vogliamo vedere come si confrontano anche con i nostri fattori DoE. Poi inseriamo una sorta di variabile di convalida incrociata. Possiamo usare, usiamo la nostra... Usiamo la nostra variabile fold A lì. Faremo cinque volte. Di nuovo, potresti voler fare quattro volte. Questo non ha molta importanza.
Bisogna fare un po' di attenzione con dati così piccoli, ma non impantanarci troppo. Ecco il setter di base per XGBoost. Ci sono molti iperparametri che si possono regolare. Oggi non abbiamo tempo per questo. Eseguiamo semplicemente il modello predefinito. Spesso funziona abbastanza bene, e poi vediamo cosa succede. Il modello in realtà è stato eseguito solo cinque volte.
Guarda cosa è successo qui. Questa è la cosiddetta perdita di training. Nota che è scesa e poi è tornata a salire, quindi questo è un segnale di avvertimento che stiamo iniziando a sovradimensionare i dati dopo l'iterazione numero cinque o sei. Non vorresti usare questo modello nella pratica. Vorresti dire o fermalo. Andiamo. Possiamo farlo ancora una volta. Andiamo avanti e fermiamoci dopo cinque. È una delle cose più semplici da fare.
Un'altra idea, se si vuole essere più elaborati, è quella di regolarizzare ulteriormente il modello o apportare altre modifiche per renderlo più preciso, ma l'idea ora è di nuovo quella di fare una previsione. Il nostro obiettivo è prevedere il giorno 14. Notate che per i dati di training, in realtà adattiamo i dati perfettamente, ma forse non è poi così sorprendente. Ci sono solo poche righe, ma il set di convalida, queste sono le cosiddette previsioni fuori scala.
Questi sono gli indicatori di come il modello si comporterà probabilmente sui dati futuri. Potete vedere che il modello sta iniziando a raggiungere i suoi obiettivi. È certamente lontano dalla perfezione, solo nel nostro quadrato di 0,3, in questo caso con una correlazione di 0,65. Il modello sta prendendo un piccolo slancio, direi, e penso che con qualche aggiustamento si possa fare ancora meglio. Ma, ripeto, con solo otto righe, bisogna essere molto cauti. Lo mostro solo a titolo illustrativo. In genere, per ottenere un modello davvero valido da utilizzare in seguito, servono più dati.
XGBoost offre poi alcune funzionalità aggiuntive davvero utili per aiutarvi a interpretare, ad esempio, l'importanza di queste variabili. Possiamo vedere qui che il nostro tasso di sovrapposizione aerea si sta rivelando uno dei nostri migliori predittori, anche rispetto ai valori di ritardo del titolo stesso. È interessante, quindi possiamo effettivamente iniziare a fare alcune inferenze indirette sui nostri fattori DoE. Ma, ripeto, il nostro focus qui è sulla previsione, non sull'inferenza statistica diretta.
Ora, come modello alternativo, creiamo una rete neurale usando il componente aggiuntivo Torch. La configurazione è esattamente la stessa, quindi dovrete... Dovete installare il componente aggiuntivo e poi avviare la piattaforma, e letteralmente useremo le stesse identiche variabili in ogni slot. Vogliamo prevedere il giorno 14 per usare i nostri fattori DoE e i nostri titoli di ritardo e ripiegare A. Di nuovo, faremo cinque volte. Eseguiamo semplicemente il modello predefinito. Il modello di perceptron multistrato è un modello a due strati. Possiamo vedere qui che questo modello in realtà non sta andando molto bene. In effetti, ha un RSquare negativo. Qui, direi che XGBoost, così com'è, sta andando un po' meglio.
Ma quello che ho scoperto è che con un po' di ottimizzazione di entrambi, tendono a fare circa... Spesso hanno prestazioni simili e tendono anche a completarsi a vicenda piuttosto bene. Se si desidera davvero ottenere le migliori previsioni in assoluto, un trucco è quello di unire i due modelli, cosa che si può fare semplicemente salvando le previsioni complete e calcolandone la media. È un trucco classico. Si vede quasi in ogni competizione di Kaggle. È ciò che le persone tendono a fare per ottenere davvero le massime prestazioni.
In ogni caso, per me, JMP Pro è un approccio molto potente e flessibile che si può adottare. È possibile aggiungere più predittori. È possibile adattare questi modelli molto rapidamente e questo aiuta davvero a rispondere a domande molto pratiche, ad esempio: forse si è quasi alla fine di un batch e si vuole decidere se continuare o meno? Perché non eseguirlo molto rapidamente, vedere come si prospetta la situazione per il giorno successivo in termini di previsione e poi prendere una decisione in merito, invece di aspettare o usare le vecchie regole tradizionali? Penso che la potenza e la flessibilità di questi moderni modelli predittivi siano davvero, davvero convincenti.
Grazie mille per l'ascolto e spero che possiate trarne spunto. È stato un piacere collaborare a questo esempio. Ognuno di noi proviene da background diversi. È stato un progetto davvero divertente e vediamo che c'è molto potenziale per diverse cose che possiamo fare in futuro. Non esitate a contattarci per qualsiasi domanda su ciò che abbiamo mostrato oggi: saremo lieti di parlarne ulteriormente e continuare il dialogo.