R - 'princomp' может использоваться только с большим количеством единиц, чем с переменными
Я использую программное обеспечение R (R commander) для кластеризации своих данных. У меня есть небольшое подмножество моих данных, содержащее 200 строк и около 800 столбцов. Я получаю следующую ошибку при попытке кластера kmeans и построения графика. "princomp" может использоваться только с большим количеством единиц, чем с переменными "
Затем я создал тестовый документ из 10 строк и 10 столбцов, которые хорошо отображаются, но когда я добавляю дополнительный столбец, я снова получаю ошибку. Почему это? Мне нужно иметь возможность построить свой кластер. Когда я просматриваю свой набор данных после выполнения kmeans, я вижу столбец дополнительных результатов, который показывает, к каким кластерам они принадлежат.
Есть ли что-то, что я делаю не так, могу ли я избавиться от этой ошибки и построить свою большую выборку??? Пожалуйста, помогите, вот уже неделю ломаю голову. Спасибо, парни.
3 ответа
Проблема в том, что у вас больше переменных, чем точек выборки, и анализ основных компонентов, который выполняется, не выполняется.
В файле справки для princomp
это объясняет (читай ?princomp
):
‘princomp’ only handles so-called R-mode PCA, that is feature
extraction of variables. If a data matrix is supplied (possibly
via a formula) it is required that there are at least as many
units as variables. For Q-mode PCA use ‘prcomp’.
Анализ основных компонентов недостаточно конкретизирован, если у вас меньше образцов, чем в точке данных. Каждая точка данных будет ее собственным основным компонентом. Для работы PCA количество экземпляров должно быть значительно больше количества измерений.
Проще говоря, вы можете посмотреть на следующие проблемы: если у вас есть n
размеры, вы можете закодировать до n+1
экземпляры, использующие векторы, которые все 0
или которые имеют не более одного 1
, И это оптимально, поэтому PCA сделает это! Но это не очень полезно.