Відповіді:
Наступна стаття: Затримання компонентів в аналізі основних компонентів із застосуванням даних мікроматриці кДНК Кангелосі та Горіелі дає досить хороший огляд стандартного правила великих пальців для визначення кількості компонентів у дослідженні. (Графік екрана, Пояснюється пропорція загальної дисперсії, Середнє правило власного значення, Діаграма власного значення значення Log і т.д.) Більшість з них досить просто реалізувати в Р.
Загалом, якщо ваш сюжет осипів дуже непереконливий, то вам просто потрібно "забрати отруту". Не існує абсолютного права чи неправильності для будь-яких даних, оскільки насправді кількість ПК, які потрібно використовувати, насправді залежить від вашого розуміння проблеми. Єдиний набір даних, з якого ви можете «реально» знати розмірність, - це той, який ви сконструювали самі. :-) Основні компоненти в кінці дня забезпечують оптимальне розкладання даних за метрикою RSS (де в якості побічного продукту ви отримуєте кожен компонент для відображення основного режиму зміни) та включаючи або виключаючи задану кількість компонентів диктує ваше сприйняття мірності вашої проблеми.
Що стосується особистих переваг, мені подобається підхід Мінки до цього автоматичного вибору розмірності для PCA, який ґрунтується на ймовірнісному тлумаченні PCA, але знову ж таки, ви потрапляєте в гру, намагаючись моделювати ймовірність ваших даних для заданої розмірності. (Посилання надає код Matlab, якщо ви хочете дотримуватися цього обґрунтування.)
Спробуйте більше зрозуміти свої дані. напр. Ви дійсно вірите, що 99,99% варіацій вашої набору даних обумовлено коваріатами вашої моделі? Якщо це, мабуть, вам, ймовірно, не потрібно включати розміри, які демонструють таку невелику частку загальної дисперсії. Чи вважаєте ви, що насправді компонент відображає зміну нижче порогу просто помітних відмінностей? Це, ймовірно, означає, що включення цього компонента до вашого аналізу є мало релевантним.
У будь-якому випадку, удачі та уважно перевіряйте свої дані. (Розміщення їх також творить чудеса.)
Протягом останніх кількох років з цього питання було дуже приємно працювати над цією проблемою. Я настійно рекомендую наступний документ Гавіша та Доного: Оптимальний жорсткий поріг для сингулярних значень - 4 / sqrt (3)
Їх результат ґрунтується на асимптотичному аналізі (тобто є чітко визначене оптимальне рішення, оскільки ваша матриця даних стає нескінченно великою), але вони показують вражаючі числові результати, які показують, що асимптотично оптимальна процедура працює для малих і реалістично величин наборів даних, навіть при різному шумі моделей.
Вони також пояснюють неквадратний випадок у статті. Тут є приємне доповнення коду (в MATLAB), але алгоритми було б легко реалізувати в R або деінде: https://purl.stanford.edu/vg705qn9070
Застереження:
Проблема з критерієм Кайзера (усі власні значення більше одного) полягає в тому, що кількість вилучених факторів, як правило, становить приблизно третину кількості предметів або шкал в акумуляторі, незалежно від того, чи багато додаткових факторів є шумом. Паралельний аналіз та критерій екранізації, як правило, є більш точними процедурами для визначення кількості факторів, які слід вилучити (відповідно до класичних текстів Гармона та Ледіярда Таккера, а також останніх робіт Уейна Веліцера.
psy
абоpsych
пакунок у програмах R, SPSS, SAS та MATLAB для визначення кількості компонентів та факторів. Більш загальне використання паралельного аналізу та тесту MAP Velicer .