Я рассчитываю PCA для набора данных радужной оболочки следующим образом:
data(iris)
ir.pca <- prcomp(iris[, 1:4], center = TRUE, scale. = TRUE)
Это первая строка набора данных радужной оболочки:
head(iris, 1)
#Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
Для первой строки я вижу, что значение первого основного компонента равно -2.257141:
head(ir.pca$x, 1)
# PC1 PC2 PC3 PC4
#[1,] -2.257141 -0.4784238 0.1272796 0.02408751
Но когда я пытаюсь извлечь нагрузки:
ir.pca$rotation[, 1]
Sepal.Length Sepal.Width Petal.Length Petal.Width
0.5210659 -0.2693474 0.5804131 0.5648565
и сам вычислим первый главный компонент:
0.5210659 * 5.1 + -0.2693474 * 3.5 + 0.5804131 * 1.4 + 0.5648565 * 0.2
Я получаю другой результат 2.64027.
Почему это?