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


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, что и исходный набор данных? Это более или менее то, что подразумевается под «ожидаемыми собственными значениями», поскольку я понятия не имею, как будет выглядеть распределение ОЖИДАЕМЫХ собственных значений.

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

Ответы:


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».


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

Рад был помочь! Рад, что это было полезно для вас.
maxwelldeux
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.