Ho più di 1000 colonne che descrivono le proprietà strutturali (numeriche, continue) di una proteina (categorica) e con queste voglio confrontare diverse proteine. Queste proprietà mostrano multicollinearità. Quale piattaforma JMP è la migliore per selezionare le proprietà pertinenti, confrontare le proteine e identificare quali proprietà distinguono una proteina dalle altre? Ho provato entrambe le piattaforme Cluster Variables e Predictor Screening e quindi ho applicato K-means per raggruppare le proteine. Finora ho ottenuto buone intuizioni ma volevo un consiglio da un esperto di JMP.
CIAO @jlmbs ,
È difficile dire se esiste un metodo migliore per il tuo caso d'uso, in quanto può dipendere da diversi parametri:
- Il tuo obiettivo: sei più interessato alla predittività (prevedere una proprietà proteica grazie a proprietà strutturali, come i modelli QSPR (Quantitative Structure Property Relationships)) o alla spiegabilità (raggruppamento/raggruppamento di proteine simili per comprendere meglio alcune somiglianze di struttura/proprietà, ad esempio)?
- Le caratteristiche del set di dati: valori mancanti, valori anomali, grado di multicollinearità... : a seconda di queste caratteristiche del set di dati, alcuni metodi potrebbero essere più appropriati di altri.
- Il tipo di modellazione (collegato al tuo obiettivo): alcuni modelli hanno una selezione di funzionalità "integrata" (ad esempio Random Forest, LASSO/Elastic Net in Generalized Regression ...), alcuni sono più appropriati per la spiegabilità/interpretabilità (quando si cerca nei modelli basati su albero, l'albero decisionale e la foresta casuale sono interessanti per la spiegabilità, mentre l'albero potenziato è più difficile da interpretare ma può avere ottime prestazioni predittive), e i modelli si comportano in modo diverso di fronte alla multicollinearità (i minimi quadrati ordinari non sono assolutamente appropriati quando c'è multicollinearità, mentre i minimi quadrati parziali gestiscono facilmente la multicollinearità in situazioni in cui è presente un gran numero di variabili esplicative altamente correlate, come spesso accade nei casi d'uso chimico/chemoinformatico).
Esistono altri parametri che potrebbero influenzare la scelta del modello, come il "profilo di previsione" atteso o la complessità del modello (che può essere collegata ai punti precedenti menzionati in precedenza e influenzata dall'esperienza del dominio): alcuni metodi (come i metodi basati su alberi) creare modelli di previsione con "passi", mentre altri creeranno modelli/profili di previsione "lisci" con curvatura (reti neurali, macchine vettoriali di supporto, ...) e alcuni possono creare relazioni lineari e diritte tra input e output (PLS , alcuni altri modelli di regressione, ...).
Come puoi vedere, ci sono molte opzioni (alcune possono dipendere se sei su JMP o JMP Pro).
Prima di passare direttamente all'analisi, visualizzerei le correlazioni tra i descrittori chimici con le risposte, in quanto ciò potrebbe fornire un'indicazione sulle variabili correlate e sugli input influenti per la tua analisi (piattaforma "Multivariata" in Analizza -> Metodi multivariati).
Puoi anche dedicare del tempo a controllare i valori mancanti e gli outlier e a controllare il punteggio VIF su un modello di base (non utilizzato per prestazioni predittive/esplicative, ma solo per avere accesso al calcolo dei punteggi VIF per comprendere meglio l'entità della multicollinearità che hai nel tuo set di dati).
Quindi, alcune opzioni da considerare:
- JMP:
- Un primo approccio potrebbe essere quello di eseguire un'analisi dei componenti principali (PCA) e quindi provare a modellare la risposta predefinita con questi componenti principali (o provare un metodo di clustering con i componenti principali). Lo svantaggio di questo approccio è che ti farà perdere una certa spiegabilità su quali fattori incidono sui valori predefiniti, poiché verranno combinati nelle variabili PCA.
- Un'altra opzione sarebbe provare i minimi quadrati parziali (PLS), un approccio molto efficiente quando si ha a che fare con molte variabili correlate e pochissime osservazioni. Viene utilizzato ad esempio nell'analisi spettrale (chemiometria) ma anche in alcuni modelli QSPR (chemioinformatica), dove si hanno poche osservazioni ma molti dati di input (trasmittanza/intensità per ogni lunghezza d'onda per esempio o molti dati chimici/molecolari altamente correlati descrittori).
- Predictor Screening è anche un buon strumento per avere una panoramica su quali fattori possono essere i più influenti sulla risposta e prendersi cura "nativamente" della multicollinearità (poiché il modello alla base è una Random Forest).
- JMP Pro:
- Invece dello screening Predictor, puoi provare "Random Forest", dove avrai molte più informazioni sul modello e la possibilità di salvare la formula. Dal momento che RF utilizza il bagging delle caratteristiche per ogni albero, puoi essere sicuro che anche in caso di multicollinearità e più parametri che osservazioni, ogni parametro avrà la stessa probabilità di essere selezionato in un albero, quindi avrai una buona visione su quali fattori influenzare le impostazioni predefinite.
- Puoi anche esaminare i modelli di regressione generalizzata con metodi di stima penalizzati come Lasso, Ridge o Elastic Net.
Questi sarebbero i miei primi modelli da provare.
Nella fase di clustering, controlla se hai:
- valori anomali "contestuali"/multidimensionali : punti che non sono valori anomali in tutte le dimensioni, per i quali K-Nearest Neigbors, Mahalanobis / Coltello a serramanico Distanze o PCA potrebbero essere un approccio interessante.
- valori anomali collettivi, per i quali le medie K possono essere utili, ma è possibile confrontare i risultati ottenuti con Miscele gaussiane , in quanto potrebbe essere più "flessibile" per quanto riguarda la forma dei cluster (non necessariamente sferica come può essere K-Means).
Spero che questa (lunga) risposta ti possa aiutare,