Ответы:
В следующей статье: Сохранение компонентов в анализе основных компонентов с применением данных микрочипов кДНК Cangelosi и Goriely дает довольно хороший обзор стандартного правила больших пальцев для определения количества компонентов в исследовании. (График Scree, объясненная доля общей дисперсии, правило среднего собственного значения, диаграмма логического собственного значения и т. Д.) Большинство из них довольно просто реализовать в R.
В общем, если ваш сюжет осыпается очень неубедительно, то вам просто нужно «выбрать свой яд». Не существует абсолютно правильных или неправильных данных, поскольку в действительности количество используемых компьютеров зависит от вашего понимания проблемы. Единственный набор данных, который вы можете «реально» знать размерность, - это тот, который вы создали сами. :-) Основные компоненты в конце дня обеспечивают оптимальную декомпозицию данных по метрике RSS (где в качестве побочного продукта вы получаете каждый компонент для представления основного способа изменения), включая или исключая определенное количество компонентов диктует ваше восприятие размерности вашей проблемы.
Что касается личных предпочтений, мне нравится подход Минки к этому автоматическому выбору размерности для PCA, который основан на вероятностной интерпретации PCA, но опять же, вы попадаете в игру, пытаясь смоделировать вероятность ваших данных для данной размерности. (Ссылка содержит код Matlab, если вы хотите следовать этому обоснованию.)
Постарайтесь понять ваши данные больше. например. Вы действительно верите, что 99,99% вариаций вашего набора данных обусловлены ковариатами вашей модели? Если нет, то, вероятно, вам не нужно включать измерения, которые показывают такую небольшую долю общей дисперсии. Считаете ли вы, что в действительности компонент отражает отклонения ниже порога просто заметных различий? Это опять же, вероятно, означает, что включение этого компонента в анализ не имеет большого значения.
В любом случае, удачи и внимательно проверьте ваши данные. (Построение их также делает чудеса.)
В течение последних нескольких лет была очень хорошая последующая работа по этой проблеме, так как этот вопрос был первоначально задан и получен ответ. Я настоятельно рекомендую следующую статью Гэвиша и Донохо: Оптимальный жесткий порог для особых значений равен 4 / sqrt (3)
Их результат основан на асимптотическом анализе (т. Е. Существует четко определенное оптимальное решение, поскольку ваша матрица данных становится бесконечно большой), но они показывают впечатляющие численные результаты, которые показывают, что асимптотически оптимальная процедура работает для небольших и реалистичных наборов данных, даже при различном шуме моделей.
По сути, оптимальная процедура сводится к оценке шума , добавляемого к каждому элементу матрицы. На основании этого вы вычисляете порог и удаляете главные компоненты, сингулярное значение которых падает ниже порога. Для квадратной матрицы константа пропорциональности 4 / sqrt (3) отображается так, как это предлагается в заголовке:n × n
Они также объясняют не квадратный случай в статье. У них есть хорошее дополнение кода (в MATLAB) здесь, но алгоритмы было бы легко реализовать в R или где-либо еще: https://purl.stanford.edu/vg705qn9070
Предостережения:
Проблема с критерием Кайзера (все собственные значения больше единицы) состоит в том, что количество извлекаемых факторов обычно составляет примерно одну треть от числа элементов или шкал в батарее, независимо от того, являются ли многие из дополнительных факторов шумом. Параллельный анализ и критерий осыпи, как правило, являются более точными процедурами для определения количества извлекаемых факторов (согласно классическим текстам Хармона и Ледьярда Такера, а также более поздней работе Уэйна Великера).
psy
илиpsych
в R, а также программы SPSS, SAS и MATLAB для определения количества компонентов и факторов. Использование параллельного анализа и MAP-теста Великера в целом.