Analisi PCA + clustering per dati spettraliCiao!
Mi chiedevo se qualcuno potesse aiutarmi con i passaggi da seguire per eseguire l'analisi PCA + clustering dei dati spettrali?
Ho già normalizzato tutti i miei dati spettrali (intensità). Ho campioni che variano in termini di composizione e poi ognuno di essi passa attraverso diversi step di elaborazione. Spero che le tecniche multivariate possano aiutarmi a discutere quale sia migliore (step di composizione o di elaborazione) in termini di clustering dei campioni.
Se può essere utile, allego una versione breve dei miei dati.
Grazie in anticipo!!
Mariana
Modellazione statistica avanzataRe: PCA + analisi di clustering per dati spettraliCiao @Mariana_Aguilar ,
Vedo almeno 2 opzioni per esplorare il tuo set di dati di curve (una con JMP, la seconda con JMP Pro):
- Con JMP : puoi usare la piattaforma Fit Curve con un formato dati impilato, impostando "Intensità normalizzata" come Y, "Lunghezza d'onda (nm)" come X e "Campione" come Per variabili. Quindi, puoi adattare un picco normale skew (disponibile nei modelli Peak nel triangolo rosso) ai tuoi 4 campioni ed estrarre i parametri delle curve adattate: Posizione , Scala , Skew e Valore picco (fai clic con il pulsante destro del mouse sulla tabella "Stime parametri" e fai clic su "Crea tabella dati combinata"). Si aprirà una nuova tabella in un formato impilato.
È possibile dividere questa tabella e utilizzare le stime dei parametri nella piattaforma PCA per valutare quanto siano simili/diversi i due processi e la loro composizione:

La maggior parte della variazione sembra derivare dal processo, con la prima componente principale responsabile di circa il 95% della variazione nei valori dei parametri e collegata al processo.
Il clustering gerarchico mostrerebbe anche che la differenza più grande tra i campioni potrebbe essere collegata a una differenza nel processo (pastorizzazione vs. dispersione, prima suddivisione nel clustering):

-
Con JMP Pro : è possibile utilizzare Functional Data Explorer con un formato dati impilato, impostando "Intensità normalizzata" come Y, Output, "Lunghezza d'onda (nm)" come X, Input e "Campione" come ID, Variabili funzione.
È quindi possibile adattare un modello B-Spline ai dati della curva e un modello cubico con 17 spline dovrebbe funzionare bene:
È quindi possibile guardare direttamente il grafico del punteggio per visualizzare i campioni con uno o due componenti principali funzionali:
Ancora una volta, noterai che il processo sembra rappresentare la differenza maggiore nei profili delle curve del tuo campione (corrispondente a FPC1 responsabile del 99,8% della variazione nei dati delle curve).
Questa conclusione sull'importanza del processo può essere facilmente visualizzata anche tramite Graph Builder (gli ID dei due campioni sono molto simili, ma la variazione della curva può essere attribuita principalmente alle differenze di processo):

Gli script per seguire l'analisi qui descritta sono disponibili nella tabella dati allegata.
Spero che queste due soluzioni possano aiutarti,
Re: PCA + analisi di clustering per dati spettraliCiao @Mariana_Aguilar ,
Ti suggerisco di dare un'occhiata alle seguenti risorse sull'analisi multivariata per i dati spettrali di @Bill_Worley , che ti aiuteranno a comprendere gli strumenti pertinenti in JMP:
https://www.jmp.com/en_be/articles/analyzing-spectral-data-multivariate-methods.html
https://community.jmp.com/t5/Mastering-JMP/Building-Predictive-Models-for-Corlated-and-High-Dimensional/ta-p/618888
https://community.jmp.com/t5/Discovery-Summit-Americas-2020/Using-Multivariate-Tools-in-JMP-for-Analysis-of-Spectral-Data/ta-p/281561
Grazie,
Ben
Re: PCA + analisi di clustering per dati spettraliCiao Victor, grazie per la tua risposta gentile ed esauriente.
Se non ti dispiace, avrei un altro paio di domande...
1. Per la prima opzione (utilizzando il menu Fit Curve). Non riesco a trovare Skew Normal Peaks nel menu Peak Models. Ho provato con Gaussian (verde), ma almeno visivamente non sembra un granché. Poi ho provato con ExGaussian che sembra migliore, ma non sono sicuro se introdurrei più complessità nei parametri della mia curva adattata?


E la mia seconda domanda riguarda la seconda opzione.
Dalla piattaforma Functional Data Explorer, sai come posso salvare i componenti principali ottenuti in modo da poter procedere con il clustering gerarchico? (o se esiste un'altra opzione all'interno della piattaforma per passare al clustering?)
Grazie mille!
Mariana
Re: PCA + analisi di clustering per dati spettraliAh, un altro dubbio, se posso!
Nella piattaforma di esplorazione dei dati funzionali, qual è la differenza tra l'utilizzo di B-Spline per preelaborare prima i dati e l'utilizzo diretto di Direct Functional PCA nel menu dei modelli (sotto il triangolo rosso):

Grazie!
Re: PCA + analisi di clustering per dati spettraliCiao @Mariana_Aguilar ,
Per quanto riguarda le tue domande:
- Penso che questo nuovo tipo di modello " Skew Normal Peak " sia stato introdotto solo in JMP 18, quindi se stai lavorando con JMP 17, avrai accesso solo alle tre scelte che hai menzionato: Opzioni curva di adattamento
Se per il momento non puoi avere JMP 18, concordo che ExGaussian potrebbe essere un'opzione di modellazione più adatta, poiché sembra che i tuoi picchi siano un po' distorti. Il modello di picco gaussiano è più appropriato se hai un picco gaussiano simmetrico.
Non capisco come ExGaussian possa aggiungere più "complessità" al modello, poiché ci sarà solo una differenza di un parametro nella complessità del modello tra ExGaussian e Gaussian. Osservando i criteri di informazione AICc e BIC, puoi vedere che l'aggiunta di un parametro migliora la modellazione, c'è un migliore equilibrio tra adattamento del modello e complessità del modello (più basso è il criterio di informazione AICc/BIC, meglio è).
- Nella piattaforma Functional Data Explorer, puoi salvare i componenti principali funzionali: vai nel pannello " Riepiloghi delle funzioni ", clicca sul triangolo rosso e da lì puoi personalizzare e salvare i riepiloghi delle funzioni e gli FPC:

È possibile visualizzare direttamente i campioni in un grafico 2D con gli FPC quando si guarda il grafico del punteggio :

Spero che queste risposte complementari ti siano d'aiuto,
Re: PCA + analisi di clustering per dati spettraliCiao @Mariana_Aguilar ,
La differenza sta nel modo in cui i dati vengono utilizzati e pre-elaborati, come hai detto: con una B-Spline o una P-Spline, prima si utilizza un modello che corrisponde ai dati delle curve grezze, e poi si possono calcolare le componenti principali funzionali in base a questo modello (approssimazione).
Con modelli diretti come il Functional PCA diretto, esegui direttamente una Singular Value Decomposition (SVD) sui tuoi dati grezzi per estrarre autovalori e autofunzioni. Maggiori informazioni qui: Tipi di adattamenti di modelli funzionali
Per determinare quale sarebbe un'opzione adatta, puoi adattare diversi modelli e valutarli in base a metriche statistiche (come i criteri di informazione AICc e BIC) e con le visualizzazioni dei grafici diagnostici per valutare l'adeguatezza/precisione del modello. Nel tuo caso, sembra che applicare B-Spline prima di estrarre i componenti principali funzionali con i dati delle tue curve sia una buona opzione, poiché i residui dai modelli sono molto bassi e omogenei, a differenza di quelli di Direct Functional PCA:
Grafici diagnostici per B-Splines:

Grafici diagnostici per FPCA diretto:

Spero che questa risposta ti aiuti,
Re: PCA + analisi di clustering per dati spettraliGrazie Victor!