$loadings
返されたオブジェクトのコンポーネントが必要です。
R> class(pca$loadings)
[1] "loadings"
R> pca$loadings
Loadings:
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
a -0.198 0.713 -0.671
b 0.600 0.334 -0.170 0.707
c -0.600 -0.334 0.170 0.707
d 0.439 -0.880 -0.180
e 0.221 0.701 0.678
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
SS loadings 1.0 1.0 1.0 1.0 1.0
Proportion Var 0.2 0.2 0.2 0.2 0.2
Cumulative Var 0.2 0.4 0.6 0.8 1.0
これには、小さな負荷の印刷print()
を抑制する特別な方法があることに注意してください。
これを相対的な寄与として求める場合は、列ごとの負荷を合計し、負の負荷を考慮して絶対値を使用するように注意しながら、各負荷を列 (負荷) の合計の割合として表します。
R> load <- with(pca, unclass(loadings))
R> load
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
a -0.1980087 0.712680378 0.04606100 -0.6713848 0.000000e+00
b 0.5997346 -0.014945831 0.33353047 -0.1698602 7.071068e-01
c -0.5997346 0.014945831 -0.33353047 0.1698602 7.071068e-01
d 0.4389388 0.009625746 -0.88032515 -0.1796321 5.273559e-16
e 0.2208215 0.701104321 -0.02051507 0.6776944 -1.110223e-16
この最終ステップにより、各主成分への比例寄与が得られます。
R> aload <- abs(load) ## save absolute values
R> sweep(aload, 2, colSums(aload), "/")
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
a 0.09624979 0.490386943 0.02853908 0.35933068 0.000000e+00
b 0.29152414 0.010284050 0.20665322 0.09091055 5.000000e-01
c 0.29152414 0.010284050 0.20665322 0.09091055 5.000000e-01
d 0.21336314 0.006623362 0.54544349 0.09614059 3.728970e-16
e 0.10733880 0.482421595 0.01271100 0.36270762 7.850462e-17
R> colSums(sweep(aload, 2, colSums(aload), "/"))
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
1 1 1 1 1
優先を使用する場合prcomp()
、関連する読み込みは$rotation
コンポーネントにあります。
R> pca2 <- prcomp(my_table, scale = TRUE)
R> pca2$rotation
PC1 PC2 PC3 PC4 PC5
a -0.1980087 0.712680378 -0.04606100 -0.6713848 0.000000e+00
b 0.5997346 -0.014945831 -0.33353047 -0.1698602 -7.071068e-01
c -0.5997346 0.014945831 0.33353047 0.1698602 -7.071068e-01
d 0.4389388 0.009625746 0.88032515 -0.1796321 -3.386180e-15
e 0.2208215 0.701104321 0.02051507 0.6776944 5.551115e-17
そして、関連する呪文は次のとおりです。
R> aload <- abs(pca2$rotation)
R> sweep(aload, 2, colSums(aload), "/")
PC1 PC2 PC3 PC4 PC5
a 0.09624979 0.490386943 0.02853908 0.35933068 0.000000e+00
b 0.29152414 0.010284050 0.20665322 0.09091055 5.000000e-01
c 0.29152414 0.010284050 0.20665322 0.09091055 5.000000e-01
d 0.21336314 0.006623362 0.54544349 0.09614059 2.394391e-15
e 0.10733880 0.482421595 0.01271100 0.36270762 3.925231e-17