Согласно документации (?prcomp
), баллы ПК - это данные, центрированные и масштабированные, если требуется, умноженные на матрицу вращения. Итак, давайте сделаем этот расчет для строки 1 и ПК 1, чтобы проверить. В этом примере я использую объект PCA, который образно называется pca
.
Сначала мы центрируем первую строку данных, iris[1, 1:4]
, используя pca$center
, а затем масштабируем, используя pca$scale
. Наконец, мы умножаем на нагрузки для ПК 1 pca$rotation[, 1]
и суммируем результат.
# Perform PCA
pca <- prcomp(iris[, 1:4], center = TRUE, scale = TRUE)
# Calculate PC1 score for first row of 'iris'
sum(pca$rotation[,1] * (iris[1, 1:4] - pca$center) / pca$scale)
#> [1] -2.257141
Создано в 2019-01-23 пакетом представ. (v0.2.1.9000)
Как и следовало ожидать, мы получаем -2,257141.