Un documento menziona una "simulazione Monte Carlo per determinare il numero di componenti principali"; Come funziona?


10

Sto facendo un'analisi Matlab sui dati MRI in cui ho eseguito PCA su una matrice di dimensioni 10304x236 in cui 10304 è il numero di voxel (pensali come pixel) e 236 è il numero di timepunti. Il PCA mi dà 236 autovalori e i relativi coefficienti. Va tutto bene. Tuttavia, quando arriva il momento di decidere quanti componenti conservare, il documento che sto replicando dice quanto segue (per favore fatemi sapere se sono necessari chiarimenti in quanto questa è solo una breve parte dell'intero documento):

Abbiamo quindi eseguito simulazioni Monte Carlo per determinare il numero di componenti principali (PC) da estrarre dai dati ROI fastidiosi per ogni scansione. Una distribuzione nulla degli autovalori previsti è stata generata separatamente per i dati di codifica e di riposo per ciascun soggetto eseguendo PCA su dati normalmente distribuiti di uguale rango ai dati di ROI di fastidio di codifica e di riposo. I PC dai dati ROI fastidiosi reali sono stati quindi selezionati per un dato riposo o scansione di codifica se i loro autovalori associati superavano il 99 ° intervallo di confidenza degli autovalori dalle simulazioni Monte Carlo.

Tambini & Davachi, PNAS 2013, La persistenza dei modelli ippocampali multivoxel nel riposo post-codifica è legata alla memoria .

Non ho assolutamente idea di cosa fare qui. Sono abituato a scegliere i componenti in base alla varianza cumulativa spiegata. Il mio pensiero è questo, però:

Abbiamo quindi eseguito simulazioni Monte Carlo per determinare il numero di componenti principali (PC) da estrarre dai dati ROI fastidiosi per ogni scansione.

I sim di Monte Carlo intendono semplicemente fare le seguenti 1000 (o simili) volte, giusto?

Una distribuzione nulla degli autovalori attesi è stata generata eseguendo PCA su dati normalmente distribuiti di uguale rango ai dati ROI di fastidio di codifica e riposo.

In primo luogo, suppongo che "uguale rango" significhi sostanzialmente che creerò una matrice delle stesse dimensioni dell'originale (10304x236). In termini di "dati normalmente distribuiti di uguale rango" ... significa che dovrei creare una matrice 10304x236 di numeri casuali dalla distribuzione normale? Matlab ha una funzione chiamata 'normrnd' che lo fa ma richiede un input mu e sigma. Userei lo stesso mu e sigma di quelli derivati ​​dal set di dati iniziale? È più o meno ciò che si intende per "autovalori attesi" in quanto non ho idea di come sarebbe una distribuzione di autovalori ATTESI.

Immagino che il mio problema sia più o meno che non so come fare una "distribuzione nulla" di autovalori.

Risposte:


6

Un termine correlato a questa domanda è "Analisi parallela".

In termini semplici, la simulazione monte carlo genererebbe 1000 (o simili) matrici 10304x236 di dati casuali normalmente distribuiti (ciò presuppone, naturalmente, che i dati che analizzi siano normalmente distribuiti; se i tuoi dati fossero distribuiti in modo diverso, useresti un diversa distribuzione casuale). Quindi estrarre gli autovalori per ciascun set di dati creato e calcolare la media di ogni autovalore su tutte le 1000 (o simili) repliche creando anche intervalli di confidenza. Quindi confrontare gli autovalori dal set di dati con gli autovalori medi della simulazione.

Ovunque gli autovalori del set di dati superino il 99o intervallo di confidenza degli autovalori dalla simulazione monte carlo, ecco quanti fattori suggerirebbe di conservare l'analisi.

Ad esempio, se il 25o autovalore dai tuoi dati è 2,10 e il 26 è 1,97 e il 99 ° intervallo di confidenza del 25o autovalore dai 1000 (o simili) set di dati casuali è 2,04 e il 26 è 2,01, ciò suggerirebbe che tu conservare 25 componenti.

Ci sono funzioni create per fare questo per te. Un link per Matlab è questo:

http://www.mathworks.com/matlabcentral/fileexchange/44996-parallel-analysis--pa--to-for-determining-the-number-of-components-to-retain-from-pca/content/pa_test. m

L'ho trovato cercando su Google "Parallel Analysis in Matlab".


+1. Questo è molto chiaro e il link mi aiuterà molto! Avevo codificato correttamente l'estrazione degli autovalori distribuiti casualmente, ma non utilizzavo gli intervalli di confidenza nel modo corretto. Molte grazie per la tua risposta.
chainhomelow,

Felice di aiutare! Sono contento che sia stato utile per te.
maxwelldeux,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.