Вот аннотированная версия вашего кода, чтобы прояснить, что происходит на каждом этапе. Сначала выполняется исходный PCA на матрице a
:
pca.a = prcomp(a)
Это вычисляет нагрузки для каждого главного компонента (ПК). На следующем этапе эти загрузки вместе с новым набором данных b
используются для расчета оценок ПК:
project.b = predict(pca.a, b)
Итак, нагрузки такие же, но оценки на ПК разные. Если мы посмотрим на project.b
, мы увидим, что каждый столбец соответствует ПК:
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8
[1,] -0.2922447 0.10253581 0.55873366 1.3168437 1.93686163 0.998935945 2.14832483 -1.43922296
[2,] 0.1855480 -0.97631967 -0.06419207 0.6375200 -1.63994127 0.110028191 -0.27612541 -0.37640710
[3,] -1.5924242 0.31368878 -0.63199409 -0.2535251 0.59116005 0.214116915 1.20873962 -0.64494388
[4,] 1.2117977 0.29213928 1.53928110 -0.7755299 0.16586295 0.030802395 0.63225374 -1.72053189
[5,] 0.5637298 0.13836395 -1.41236348 0.2931681 -0.64187233 1.035226594 0.67933996 -1.05234872
[6,] 0.2874210 1.18573157 0.04358772 -1.1941734 -0.04399808 -0.113752847 -0.33507195 -1.34592414
[7,] 0.5629731 -1.02835365 0.36218131 1.4117908 -0.96923175 -1.213684882 0.02221423 1.14483112
[8,] 1.2854406 0.09373952 -1.46038333 0.6885674 0.39455369 0.756654205 1.97699073 -1.17281174
[9,] 0.8573656 0.07810452 -0.06576772 -0.5200661 0.22985518 0.007571489 2.29289637 -0.79979214
[10,] 0.1650144 -0.50060018 -0.14882996 0.2065622 2.79581428 0.813803739 0.71632238 0.09845912
PC9 PC10
[1,] -0.19795112 0.7914249
[2,] 1.09531789 0.4595785
[3,] -1.50564724 0.2509829
[4,] 0.05073079 0.6066653
[5,] -1.62126318 0.1959087
[6,] 0.14899277 2.9140809
[7,] 1.81473300 0.0617095
[8,] 1.47422298 0.6670124
[9,] -0.53998583 0.7051178
[10,] 0.80919039 1.5207123
Надеюсь, это имеет смысл, но я еще не допила свой первый кофе в день, так что никаких гарантий.
person
Lyngbakr
schedule
19.10.2017
predict
просто вычисляет оценки ПК на основе матрицы нагрузок и новых данных. Если вы посмотрите наproject.b
, вы увидите, что каждый столбец относится к ПК. - person Lyngbakr   schedule 19.10.2017