When doing PCA in R,
p <- princomp(iris[,1:4])
I conclude different Components' coefficients by the following two methods:
IrisLoading <- p$loadings[,1:2] #methods1, use the fist two Comp.
it results like this
     Comp.1      Comp.2
Sepal.Length  0.36138659 -0.65658877
Sepal.Width  -0.08452251 -0.73016143
Petal.Length  0.85667061  0.17337266
Petal.Width   0.35828920  0.07548102
Then if I only View its Loadings by
p$loadings
the result is
Loadings:
             Comp.1 Comp.2 Comp.3 Comp.4
Sepal.Length  0.361 -0.657 -0.582  0.315
Sepal.Width         -0.730  0.598 -0.320
Petal.Length  0.857  0.173        -0.480
Petal.Width   0.358         0.546  0.754
why the coefficients of Comp1 & 2 is changed after I "sift" the Comp.?
Calling p$loadings is equivalent to calling print(p$loadings). By default R is using a cutoff of 0.1, meaning it is removing any values that have an absolute value less than 0.1. It is also rounding to 3 decimal places, another default argument you can overwrite.
To get a more similar result to p$loadings[,1:2], run this line:
print(p$loadings, digits = 8, cutoff = 0.01)
Output:
Loadings:
             Comp.1      Comp.2      Comp.3      Comp.4     
Sepal.Length  0.36138659 -0.65658877 -0.58202985  0.31548719
Sepal.Width  -0.08452251 -0.73016143  0.59791083 -0.31972310
Petal.Length  0.85667061  0.17337266  0.07623608 -0.47983899
Petal.Width   0.35828920  0.07548102  0.54583143  0.75365743
               Comp.1 Comp.2 Comp.3 Comp.4
SS loadings      1.00   1.00   1.00   1.00
Proportion Var   0.25   0.25   0.25   0.25
Cumulative Var   0.25   0.50   0.75   1.00
I found this information in the documentation for the loadings class. You can see that documentation by calling ?loadings
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With