Я знаю, что PCA может выполняться с помощью функции prcomp()
в базе R или с помощью функции preProcess()
в пакете caret
, среди прочего.
Во-первых, я прав, говоря что если мы просто используем настройки по умолчанию для операций типа prcomp(<SOME_MATRIX>)
или preProcess(<SOME_MATRIX>, method = "pca")
, то единственная разница в наших результатах будет в том, что prcomp()
не центрирует и не масштабирует данные перед проведением PCA, а preProcess () делает? Следовательно, выводят ли prcomp(scale(<SOME_MATRIX>))
и preProcess(<SOME_MATRIX>, method = "pca")
одно и то же?
Во-вторых, что более важно, как мы можем получить% дисперсии, объясняемой каждым P C, на выходе либо prcomp()
, либо preProcess()
? Из обоих этих выходных данных я могу видеть такие вещи, как средние значения, стандартные отклонения или вращения, но я думаю, что они относятся только к «старым» переменным. Где находится информация о «новых» ПК и какая разница в них приходится?
Это может пригодиться, если, например, я использую preProcess(<SOME_MATRIX>, method = "pca", thresh = 0.8)
, и это возвращает 6 ПК, но я считаю, что первые 5 ПК объясняют в общей сложности 79,5% дисперсии. Тогда я мог бы быть склонен не включать все 6 ПК.