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

У меня возникают проблемы с princomp, особенно с biplot, когда я хочу использовать ковариационную или корреляционную матрицу, не сгенерированную самим princomp. Для простоты я буду использовать гораздо меньший набор данных, чем тот, с которым я имею дело.

cr <- cov.wt(USArrests)
biplot(princomp(data = USArrests, covmat = cr))

выдает мне ошибку

Error in biplot.princomp(princomp(data = USArrests, covmat = cr)) : 
  object 'princomp(data = USArrests, covmat = cr)' has no scores

Кажется, что здесь происходит что-то простое, но гугл пока бесполезен.


r pca
person user1423020    schedule 11.09.2013    source источник
comment
› cr ‹- cw.wt(USArrests) Ошибка: не удалось найти функцию cw.wt   -  person IRTFM    schedule 12.09.2013
comment
Это опечатка. Предполагалось, что это будет cov.wt(). Извинения.   -  person user1423020    schedule 12.09.2013


Ответы (1)


Аргумент data в princomp может использоваться только «методом S3 для класса« формула »». Таким образом, вам нужно указать вызов princomp одним из следующих двух способов:

cr <- cov.wt(USArrests)
pr1 <- princomp(x = USArrests, covmat = cr)
pr2 <- princomp(formula = ~ ., data = USArrests, covmat = cr)

biplot(pr1)
biplot(pr2)
person Henrik    schedule 12.09.2013
comment
Это потрясающе. Благодарю вас! Я подумал, что это было что-то настолько простое, но мне казалось, что какое-то время я смотрю в стену. - person user1423020; 12.09.2013
comment
Хотя у меня все еще есть проблемы с NA в моем фактическом наборе данных. Princomp, похоже, не любит получать вывод от cor() или cov(), только от cov.wt(). - person user1423020; 12.09.2013