В документе упоминается «моделирование по методу Монте-Карло для определения количества основных компонентов»; как это работает?

10

Я делаю анализ Matlab на данных МРТ, где я выполнил PCA на матрице размером 10304x236, где 10304 - это количество вокселей (представьте их как пиксели), а 236 - количество временных точек. PCA дает мне 236 собственных значений и связанных с ними коэффициентов. Это все хорошо. Однако, когда приходит время решить, сколько компонентов оставить, в документе, который я копирую, говорится следующее (пожалуйста, дайте мне знать, если требуется какое-либо разъяснение, так как это всего лишь небольшая часть всей статьи):

Затем мы выполнили моделирование по методу Монте-Карло, чтобы определить количество основных компонентов (ПК) для извлечения из данных о рентабельности инвестиций для каждого сканирования. Нулевое распределение ожидаемых собственных значений было сгенерировано отдельно для данных кодирования и отдыха для каждого субъекта, выполняя PCA на нормально распределенных данных, равных рангу с данными ROI кодирования и помех покоя. Персональные компьютеры с данными истинной помехоустойчивой рентабельности были затем выбраны для данного сканирования покоя или кодирования, если их соответствующие собственные значения превышали 99-й доверительный интервал собственных значений из моделирования Монте-Карло.

Tambini & Davachi, PNAS 2013, Стойкость многофакторных паттернов гиппокампа в посткодирующем покое связана с памятью .

Я понятия не имею, что здесь делать. Я привык выбирать компоненты, основанные на кумулятивной дисперсии. Я думаю так:

Затем мы выполнили моделирование по методу Монте-Карло, чтобы определить количество основных компонентов (ПК) для извлечения из данных о рентабельности инвестиций для каждого сканирования.

Симы Монте-Карло просто хотят делать следующие 1000 (или около того) раз, верно?

Нулевое распределение ожидаемых собственных значений было сгенерировано путем выполнения PCA для нормально распределенных данных, равных по рангу кодированию и данным ROI по остальным помехам.

Во-первых, я предполагаю, что «равный ранг» будет означать, что я создам матрицу того же размера, что и оригинал (10304x236). В терминах «нормально распределенных данных одинакового ранга» ... означает ли это, что я должен создать матрицу 10304x236 случайных чисел из нормального распределения? Matlab имеет функцию под названием 'normrnd', которая делает это, но требует ввода mu и sigma. Буду ли я использовать те же mu и sigma, что и исходный набор данных? Это более или менее то, что подразумевается под «ожидаемыми собственными значениями», поскольку я понятия не имею, как будет выглядеть распределение ОЖИДАЕМЫХ собственных значений.

Я предполагаю, что моя проблема более или менее в том, что я не знаю, как сделать «нулевое распределение» собственных значений.

chainhomelow
источник

Ответы:

6

С этим термином связан термин «параллельный анализ».

Проще говоря, симуляция Монте-Карло будет генерировать 1000 (или около того) матриц 10304x236 случайных нормально распределенных данных (это предполагает, конечно, что данные, которые вы анализируете, нормально распределены; если бы ваши данные были распределены по-другому, вы бы использовали различное случайное распределение). Затем вы должны извлечь собственные значения для каждого созданного вами набора данных и усреднить каждое собственное значение по всем 1000 (или таким) репликациям, а также создать доверительные интервалы. Затем вы сравниваете собственные значения из вашего набора данных со средними собственными значениями из вашего моделирования.

Везде, где собственные значения из вашего набора данных превышают 99-й доверительный интервал собственных значений из моделирования Монте-Карло, это то, сколько факторов анализ предложил бы сохранить.

Например, если 25-е собственное значение из ваших данных равно 2,10, а 26-е - 1,97, а 99-й доверительный интервал 25-го собственного значения из 1000 (или таких) случайных наборов данных равен 2,04, а 26-е - 2,01, это предполагает, что вы сохранить 25 компонентов.

Есть функции, созданные для этого. Одна ссылка для Matlab это:

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

Я нашел это, прибегая к помощи «Параллельный анализ в Matlab».

maxwelldeux
источник
+1. Это очень ясно, и ссылка мне очень поможет! Я правильно кодировал для извлечения случайно распределенных собственных значений, но неправильно использовал доверительные интервалы. Большое спасибо за Ваш ответ.
chainhomelow
Рад был помочь! Рад, что это было полезно для вас.
maxwelldeux