Artykuł wspomina o „symulacji Monte Carlo w celu ustalenia liczby głównych składników”; jak to działa?


10

Robię analizę Matlaba na danych MRI, gdzie wykonałem PCA na matrycy o wymiarach 10304x236, gdzie 10304 to liczba wokseli (traktuj je jako piksele), a 236 to liczba punktów czasowych. PCA daje mi 236 wartości własnych i powiązanych z nimi współczynników. Wszystko w porządku. Jednak, gdy nadchodzi czas, aby zdecydować, ile elementów zachować, powielam artykuł, który zawiera następujące informacje (proszę o informację, czy konieczne jest wyjaśnienie, ponieważ jest to tylko krótka część całego dokumentu):

Następnie przeprowadziliśmy symulacje Monte Carlo, aby określić liczbę głównych komponentów (PC) do wyodrębnienia z uciążliwych danych ROI dla każdego skanu. Rozkład zerowy oczekiwanych wartości własnych został wygenerowany osobno dla danych kodujących i spoczynkowych dla każdego pacjenta, wykonując PCA na normalnie rozłożonych danych o równej randze z danymi ROI uciążliwego kodowania i spoczynkowej. Komputery PC z prawdziwych uciążliwych danych ROI zostały następnie wybrane do danego skanu odpoczynku lub kodowania, jeśli ich powiązane wartości własne przekroczyły 99. przedział ufności wartości własnych z symulacji Monte Carlo.

Tambini i Davachi, PNAS 2013, Trwałość hipokampowych wzorców multiwokseli w odpoczynku po kodowaniu jest związana z pamięcią .

Nie mam absolutnie pojęcia, co tu robić. Jestem przyzwyczajony do wybierania składników na podstawie wyjaśnionej skumulowanej wariancji. Myślę jednak o tym:

Następnie przeprowadziliśmy symulacje Monte Carlo, aby określić liczbę głównych komponentów (PC) do wyodrębnienia z uciążliwych danych ROI dla każdego skanu.

Simy z Monte Carlo oznaczają po prostu wykonanie 1000 (lub mniej więcej) razy, prawda?

Rozkład zerowy oczekiwanych wartości własnych został wygenerowany przez wykonanie PCA na normalnie rozłożonych danych o równej wartości względem danych ROI uciążliwego kodowania i spoczynkowej.

Po pierwsze, zakładam, że „równa ranga” będzie zasadniczo oznaczać, że utworzę matrycę tego samego rozmiaru co oryginał (10304 x 236). Jeśli chodzi o „normalnie rozmieszczone dane o równej randze” ... czy to oznacza, że ​​powinienem utworzyć macierz liczb losowych 10304 x 236 z rozkładu normalnego? Matlab ma funkcję o nazwie „normrnd”, która to robi, ale wymaga danych wejściowych mu i sigma. Czy użyłbym tego samego mu i sigma co te pochodzące z początkowego zestawu danych? Czy to mniej więcej oznacza „oczekiwane wartości własne”, ponieważ nie mam pojęcia, jak wyglądałby rozkład OCZEKIWANYCH wartości własnych.

Myślę, że mój problem jest mniej więcej taki, że nie wiem, jak zrobić „zerowy rozkład” wartości własnych.

Odpowiedzi:


6

Termin związany z tym pytaniem to „Analiza równoległa”.

Mówiąc najprościej, symulacja Monte Carlo wygenerowałaby 1000 (lub takich) 10304 x 236 macierzy losowych normalnie rozłożonych danych (zakłada to oczywiście, że analizowane dane są normalnie dystrybuowane; gdyby Twoje dane były dystrybuowane inaczej, użyłbyś inny losowy rozkład). Następnie wyodrębnisz wartości własne dla każdego utworzonego zestawu danych i uśrednisz każdą wartość własną we wszystkich 1000 (lub podobnych) replikacjach, jednocześnie tworząc przedziały ufności. Następnie porównujesz wartości własne ze swojego zestawu danych ze średnimi wartościami własnymi z Twojej symulacji.

Ilekroć wartości własne z zestawu danych przekraczają 99. przedział ufności wartości własnych z symulacji Monte Carlo, tyle czynników sugeruje zachowanie analizy.

Na przykład, jeśli 25. wartość własna z twoich danych wynosi 2,10, a 26 to 1,97, a 99. przedział ufności 25 wartości własnych z 1000 (lub takich) losowych zestawów danych wynosi 2,04, a 26 to 2,01, sugerowałoby to, że zachowaj 25 elementów.

Istnieją funkcje zbudowane, aby to zrobić za Ciebie. Jednym linkiem do Matlaba jest:

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

Znalazłem to, przeglądając „Parallel Analysis in Matlab”.


+1. To jest bardzo jasne, a link bardzo mi pomoże! Poprawnie zakodowałem wyodrębnianie losowo rozmieszczonych wartości własnych, ale nie korzystałem z przedziałów ufności we właściwy sposób. Dziękuję bardzo za odpowiedź.
chainhomelow

Chętnie pomoże! Cieszę się, że było to dla ciebie przydatne.
maxwelldeux
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.