In einem Artikel wird eine „Monte-Carlo-Simulation zur Bestimmung der Anzahl der Hauptkomponenten“ erwähnt. wie funktioniert es?

10

Ich mache eine Matlab-Analyse von MRT-Daten, bei der ich eine PCA mit einer Matrixgröße von 10304 x 236 durchgeführt habe, wobei 10304 die Anzahl der Voxel (stellen Sie sich diese als Pixel vor) und 236 die Anzahl der Zeitpunkte ist. Die PCA gibt mir 236 Eigenwerte und ihre zugehörigen Koeffizienten. Das ist alles in Ordnung. Wenn es jedoch an der Zeit ist, zu entscheiden, wie viele Komponenten aufbewahrt werden sollen, steht auf dem zu replizierenden Papier Folgendes (bitte lassen Sie mich wissen, wenn eine Klarstellung erforderlich ist, da dies nur ein kurzer Teil des gesamten Papiers ist):

Anschließend führten wir Monte-Carlo-Simulationen durch, um die Anzahl der Hauptkomponenten (PC) zu bestimmen, die aus den störenden ROI-Daten für jeden Scan extrahiert werden sollen. Eine Nullverteilung der erwarteten Eigenwerte wurde separat für die Codierungs- und Ruhedaten für jedes Subjekt erzeugt, indem eine PCA an normalverteilten Daten durchgeführt wurde, die den Codierungs- und Ruhebelästigungs-ROI-Daten gleich sind. PCs aus den ROI-Daten für echte Belästigungen wurden dann für einen bestimmten Ruhe- oder Codierungsscan ausgewählt, wenn ihre zugehörigen Eigenwerte das 99. Konfidenzintervall der Eigenwerte aus den Monte-Carlo-Simulationen überschritten.

Tambini & Davachi, PNAS 2013, Die Persistenz von Hippocampus-Multivoxel-Mustern in der postencodierenden Ruhe hängt mit dem Gedächtnis zusammen .

Ich habe absolut keine Ahnung, was ich hier machen soll. Ich bin es gewohnt, Komponenten basierend auf der erklärten kumulativen Varianz auszuwählen. Mein Denken ist jedoch Folgendes:

Anschließend führten wir Monte-Carlo-Simulationen durch, um die Anzahl der Hauptkomponenten (PC) zu bestimmen, die aus den störenden ROI-Daten für jeden Scan extrahiert werden sollen.

Monte-Carlo-Sims wollen nur die folgenden 1000 (oder so) Male machen, oder?

Eine Nullverteilung der erwarteten Eigenwerte wurde durch Durchführen einer PCA an normalverteilten Daten mit gleichem Rang wie die ROI-Daten für Codierung und Ruhebelästigung erzeugt.

Erstens gehe ich davon aus, dass "gleicher Rang" im Grunde bedeutet, dass ich eine Matrix mit der gleichen Größe wie das Original (10304x236) erstellen werde. In Bezug auf 'normalverteilte Daten mit gleichem Rang' ... bedeutet dies, dass ich aus der Normalverteilung eine 10304x236-Matrix von Zufallszahlen erstellen sollte? Matlab hat eine Funktion namens 'normrnd', die dies tut, aber eine Mu- und Sigma-Eingabe erfordert. Würde ich das gleiche Mu und Sigma verwenden wie die aus dem ursprünglichen Datensatz abgeleiteten? Ist dies mehr oder weniger das, was mit "erwarteten Eigenwerten" gemeint ist, da ich keine Ahnung habe, wie eine Verteilung der ERWARTETEN Eigenwerte aussehen würde?

Ich denke, mein Problem ist mehr oder weniger, dass ich nicht weiß, wie man eine 'Nullverteilung' von Eigenwerten macht.

Kettenhaus
quelle

Antworten:

6

Ein verwandter Begriff zu dieser Frage ist "Parallele Analyse".

In einfachen Worten, die Monte-Carlo-Simulation würde 1000 (oder solche) 10304x236-Matrizen zufälliger normalverteilter Daten erzeugen (dies setzt natürlich voraus, dass die von Ihnen analysierten Daten normalverteilt sind; wenn Ihre Daten anders verteilt wären, würden Sie a verwenden unterschiedliche zufällige Verteilung). Sie extrahieren dann die Eigenwerte für jeden von Ihnen erstellten Datensatz und mitteln jeden Eigenwert über alle 1000 (oder solche) Replikationen, während Sie gleichzeitig Konfidenzintervalle erstellen. Anschließend vergleichen Sie die Eigenwerte aus Ihrem Datensatz mit den durchschnittlichen Eigenwerten aus Ihrer Simulation.

Überall dort, wo die Eigenwerte aus Ihrem Datensatz das 99. Konfidenzintervall der Eigenwerte aus der Monte-Carlo-Simulation überschreiten, würde die Analyse vorschlagen, so viele Faktoren beizubehalten.

Wenn beispielsweise der 25. Eigenwert aus Ihren Daten 2,10 und der 26. 1,97 beträgt und das 99. Konfidenzintervall der 25. Eigenwerte aus den 1000 (oder solchen) Zufallsdatensätzen 2,04 und der 26. 2,01 beträgt, deutet dies auf Sie hin 25 Komponenten behalten.

Es gibt Funktionen, die dies für Sie tun. Ein Link für Matlab lautet:

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

Ich fand das, indem ich "Parallele Analyse in Matlab" googelte.

maxwelldeux
quelle
+1. Das ist sehr klar und der Link wird mir sehr helfen! Ich hatte die Extraktion der zufällig verteilten Eigenwerte korrekt codiert, aber die Konfidenzintervalle nicht richtig verwendet. Vielen Dank für ihre Antwort.
Chainhomelow
Freue mich zu helfen! Ich bin froh, dass es für dich nützlich war.
Maxwelldeux