Пример кода:
(pc.cr <- princomp(USArrests))
summary(pc.cr)
loadings(pc.cr) ## note that blank entries are small but not zero
Я получаю разные результаты от каждого, и я не уверен, что понимаю, в чем разница.
Вот вывод:
> summary(pc.cr)
Importance of components:
Comp.1 Comp.2 Comp.3 Comp.4
Standard deviation 82.8908472 14.06956001 6.424204055 2.4578367034
Proportion of Variance 0.9655342 0.02781734 0.005799535 0.0008489079
Cumulative Proportion 0.9655342 0.99335156 0.999151092 1.0000000000
> loadings(pc.cr) ## note that blank entries are small but not zero
...
Comp.1 Comp.2 Comp.3 Comp.4
SS loadings 1.00 1.00 1.00 1.00
Proportion Var 0.25 0.25 0.25 0.25
Cumulative Var 0.25 0.50 0.75 1.00
PS: как я могу получить доступ к таблице, созданной по сводке (pc.cr) ?? (Я не могу найти его на ул.)
# inappropriate
комментарий в первой строке?Ответы:
Первый вывод является правильным и наиболее полезным. Вызов
loadings()
вашего объекта просто возвращает сводку, где SS всегда равны 1, следовательно,% дисперсии - это просто загрузка SS, деленная на количество переменных. Это имеет смысл только при использовании факторного анализа (как вfactanal
). Я никогда не используюprincomp
или его альтернативу на основе SVD (prcomp
), и я предпочитаю пакет FactoMineR или ade4 , который намного более мощный!Что
summary()
касается вашего второго вопроса, функция просто возвращает SD для каждого компонента (pc.cr$sdev
в вашем случае), а остальная часть таблицы, кажется, вычисляется впоследствии (с помощью методаprint
илиshow
, я не исследовал это подробно).То
princomp()
, что делает сам, можно посмотреть с помощьюgetAnywhere("princomp.default")
.источник