At 8:17 AM -0400 3/31/09, John Fox wrote:
Dear TY,
Considering that you used different methods -- maximum-likelihood factor
analysis in R and principal components analysis in SAS -- the results are
quite similar (although the three rotated factors/components come out in
different orders).

I hope this helps,
 John
As John pointed out, PCA is not the same as FA.  Unfortunately, SAS 
labeled the PCA as a factor analysis, when it is not.
And, when one does a principal components and extracts just the first 
three components (as you did), the unrotated solution is identical:
 package(psych)
 pc3 <- principal(x,3,rotate="none")
 print(pc3,digits=5,cut=0)
   V     PC1       PC2      PC3
V1 1 0.79880  0.549948 -0.17614
V2 2 0.77036  0.561712 -0.24862
V3 3 0.79475 -0.076853  0.54982
V4 4 0.75757 -0.087363  0.59785
V5 5 0.80878 -0.456096 -0.33437
V6 6 0.77771 -0.483310 -0.36933

                   PC1     PC2     PC3
SS loadings    3.69603 1.07311 1.00077
Proportion Var 0.61601 0.17885 0.16680
Cumulative Var 0.61601 0.79486 0.96165

Test of the hypothesis that 3 factors are sufficient.

The degrees of freedom for the model is 0  and the fit was  1.57483
The number of observations was 18 with Chi Square = 19.16046 with prob < NA
When you then rotate these components using Varimax, the solutions 
differ at the fourth decimal place
 pc3 <- principal(x,3)
 print(pc3,cut=0,digits=5)
   V     PC1     PC2     PC3
V1 1 0.19991 0.93168 0.25210
V2 2 0.21193 0.94606 0.17562
V3 3 0.23805 0.23479 0.90997
V4 4 0.19920 0.19084 0.92891
V5 5 0.93057 0.22225 0.24208
V6 6 0.94738 0.19422 0.19896

                   PC1     PC2     PC3
SS loadings    1.94470 1.94172 1.88350
Proportion Var 0.32412 0.32362 0.31392
Cumulative Var 0.32412 0.64774 0.96165

Bill



 -----Original Message-----
 From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org]
On
 Behalf Of Tae-Young Heo
 Sent: March-31-09 7:07 AM
 To: r-help@r-project.org
 Subject: [R] Factor Analysis Output from R and SAS

 Dear Users,

 I ran factor analysis using R and SAS. However, I had different outputs
from
 R and SAS.
 Why they provide different outputs? Especially, the factor loadings are
 different.
 I did real dataset(n=264), however, I had an extremely different from R
and
 SAS.
 Why this things happened? Which software is correct on?

 Thanks in advance,

 - TY

 #R code with example data

  # A little demonstration, v2 is just v1 with noise,
  # and same for v4 vs. v3 and v6 vs. v5
  # Last four cases are there to add noise
  # and introduce a positive manifold (g factor)
  v1 <- c(1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,4,5,6)
  v2 <- c(1,2,1,1,1,1,2,1,2,1,3,4,3,3,3,4,6,5)
  v3 <- c(3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,5,4,6)
  v4 <- c(3,3,4,3,3,1,1,2,1,1,1,1,2,1,1,5,6,4)
  v5 <- c(1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,6,4,5)
  v6 <- c(1,1,1,2,1,3,3,3,4,3,1,1,1,2,1,6,5,4)
  m1 <- cbind(v1,v2,v3,v4,v5,v6)
  cor(m1)
 #          v1        v2        v3        v4        v5        v6
 #v1 1.0000000 0.9393083 0.5128866 0.4320310 0.4664948 0.4086076
 #v2 0.9393083 1.0000000 0.4124441 0.4084281 0.4363925 0.4326113
 #v3 0.5128866 0.4124441 1.0000000 0.8770750 0.5128866 0.4320310
 #v4 0.4320310 0.4084281 0.8770750 1.0000000 0.4320310 0.4323259
 #v5 0.4664948 0.4363925 0.5128866 0.4320310 1.0000000 0.9473451
 #v6 0.4086076 0.4326113 0.4320310 0.4323259 0.9473451 1.0000000

 factanal(m1, factors=3) # varimax is the default


 # Output from R

 #Call:
 #factanal(x = m1, factors = 3)

 #Uniquenesses:
 #   v1    v2    v3    v4    v5    v6
 #0.005 0.101 0.005 0.224 0.084 0.005

 #Loadings:
 #   Factor1 Factor2 Factor3
 #v1 0.944   0.182   0.267
 #v2 0.905   0.235   0.159
 #v3 0.236   0.210   0.946
 #v4 0.180   0.242   0.828
 #v5 0.242   0.881   0.286
 #v6 0.193   0.959   0.196

 #               Factor1 Factor2 Factor3
 > #SS loadings      1.893   1.886   1.797
 #Proportion Var   0.316   0.314   0.300
 #Cumulative Var   0.316   0.630   0.929

 #The degrees of freedom for the model is 0 and the fit was 0.4755

 /* SAS code with example data*/

 data fact;
 input v1-v6;
 datalines;
 1  1  3  3  1  1
 1  2  3  3  1  1
 1  1  3  4  1  1
 1  1  3  3  1  2
 1  1  3  3  1  1
 1  1  1  1  3  3
 1  2  1  1  3  3
 1  1  1  2  3  3
 1  2  1  1  3  4
 1  1  1  1  3  3
 3  3  1  1  1  1
 3  4  1  1  1  1
 3  3  1  2  1  1
 3  3  1  1  1  2
 3  3  1  1  1  1
 4  4  5  5  6  6
 5  6  4  6  4  5
 6  5  6  4  5  4
 ;
 run;

 proc factor data=fact rotate=varimax method=p nfactors=3;
 > var v1-v6;
 run;

 /* Output  from SAS*/

                                                          The FACTOR
 Procedure
                                           Initial Factor Method: Principal
 Components

                                              Prior Communality Estimates:
 ONE



                                  Eigenvalues of the Correlation Matrix:
 Total = 6  Average = 1

                                          Eigenvalue    Difference
 Proportion    Cumulative

                                     1    3.69603077    2.62291629
 0.6160        0.6160
                                     2    1.07311448    0.07234039
 0.1789        0.7949
                                     3    1.00077409    0.83977061
 0.1668        0.9617
                                     4    0.16100348    0.12004232
 0.0268        0.9885
                                     5    0.04096116    0.01284515
 0.0068        0.9953
                                     6    0.02811601
 0.0047        1.0000

                                      3 factors will be retained by the
 NFACTOR criterion.



                                                         Factor Pattern

                                                  Factor1
 Factor2         Factor3

                                       v1         0.79880
 0.54995        -0.17614
                                       v2         0.77036
 0.56171        -0.24862
                                       v3         0.79475
 -0.07685         0.54982
                                       v4         0.75757
 -0.08736         0.59785
                                       v5         0.80878
 -0.45610        -0.33437
                                       v6         0.77771
 -0.48331        -0.36933


                                                Variance Explained by Each
 Factor

                                              Factor1         Factor2
 Factor3

                                            3.6960308       1.0731145
 1.0007741


                                          Final Communality Estimates:
Total
 = 5.769919

                           v1              v2              v3
 v4              v5              v6
                   0.97154741      0.97078498      0.93983835
 0.93897798      0.97394719      0.97482345



                                                    The FACTOR Procedure
                                                    Rotation Method:
Varimax
                                                Orthogonal Transformation
 Matrix

                                                           1
 2               3

                                           1         0.58233
 0.57714         0.57254
                                           2        -0.64183
 0.75864        -0.11193
                                           3        -0.49895
 -0.30229         0.81220


                                                     Rotated Factor Pattern

                                                  Factor1
 Factor2         Factor3

                                       v1         0.20008
 0.93148         0.25272
                                       v2         0.21213
 0.94590         0.17626
                                       v3         0.23781
 0.23418         0.91019
                                       v4         0.19893
 > 0.19023         0.92909
                                       v5         0.93054
 0.22185         0.24253
                                       v6         0.94736
 0.19384         0.19939


                                                Variance Explained by Each
 Factor

                                              Factor1         Factor2
 Factor3

                                            1.9445607       1.9401828
 1.8851759


                                          Final Communality Estimates:
Total
 = 5.769919

                           v1              v2              v3
 > v4              v5              v6
                   0.97154741      0.97078498      0.93983835
 0.93897798      0.97394719      0.97482345

        [[alternative HTML version deleted]]

 ______________________________________________
 R-help@r-project.org mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
 and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

--
William Revelle         http://personality-project.org/revelle.html
Professor                       http://personality-project.org/personality.html
Department of Psychology             http://www.wcas.northwestern.edu/psych/
Northwestern University http://www.northwestern.edu/
Attend  ISSID/ARP:2009               http://issid.org/issid.2009/

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to