Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The Result loadings of PCA in R

Tags:

r

pca

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.?

like image 451
Zimeng Zhao Avatar asked Oct 29 '25 11:10

Zimeng Zhao


1 Answers

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

like image 199
efbbrown Avatar answered Oct 31 '25 02:10

efbbrown



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!