As it was already pointed out by others, you used different methods (principal components in SAS vs. factor analysis in R). When you use the same method (+ varimax rotation) in both programs, there may still be a *small* difference: this comes from (possibly) different stopping criteria. In R, the default stopping criterion in varimax is eps = 1e-5; I've once set it to 1e-12 to make the results *almost* identical with the output of another program (Statistica).
Kenn On Tue, Mar 31, 2009 at 3:17 PM, John Fox <j...@mcmaster.ca> 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 > > > -----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. > [[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.