Hi,
I am puzzeled with a differing result of princomp in R and FACTOR in
SPSS. Regarding the amount of explained Variance, the two results are
the same. However, the loadings differ substantially, in the unrotated
as well as in the rotated form.
In both cases correlation matrices are analyzed. The sums of the squared
components is one in both programs.
Maybe there is an obvious reason, but I somehow fail to see it.
Best Regards
Andreas
This is the output generated by R:
pc<-princomp(dat[,-c(1,2)],cor=T)
> pc$loadings[,1:2]
Comp.1 Comp.2
DS140_01 -0.2040579 -0.3837623
DS140_02 0.2351527 -0.3241166
DS140_03 -0.1391408 -0.3864510
DS140_04 0.2784596 -0.2512202
DS140_05 0.2823365 -0.2779157
DS140_06 0.2928942 0.1218132
DS140_07 0.2601528 -0.1162116
DS140_08 0.2737338 0.2811998
DS140_09 0.3012719 -0.1714994
DS140_10 0.2653410 0.3159160
DS140_11 0.2590944 0.2347922
DS140_12 0.2837112 -0.2653533
DS140_13 0.3246268 -0.2187217
DS140_14 0.2896170 0.2190227
> varimax(pc$loadings[,1:2])
$loadings
Loadings:
Comp.1 Comp.2
DS140_01 -0.424
DS140_02 0.390
DS140_03 0.146 -0.384
DS140_04 0.375
DS140_05 0.395
DS140_06 0.143 0.283
DS140_07 0.273
DS140_08 0.392
DS140_09 0.340
DS140_10 0.413
DS140_11 0.347
DS140_12 0.388
DS140_13 0.389
DS140_14 0.355
Comp.1 Comp.2
SS loadings 1.000 1.000
Proportion Var 0.071 0.071
Cumulative Var 0.071 0.143
$rotmat
[,1] [,2]
[1,] 0.7585207 0.6516489
[2,] -0.6516489 0.7585207
This is the output generated by SPSS
Call:
FACTOR
/VARIABLES ds140_01 ds140_02 ds140_03 ds140_04 ds140_05 ds140_06 ds140_07
ds140_08 ds140_09 ds140_10 ds140_11 ds140_12 ds140_13 ds140_14 /MISSING
LISTWISE /ANALYSIS ds140_01 ds140_02 ds140_03 ds140_04 ds140_05 ds140_06
ds140_07 ds140_08 ds140_09 ds140_10 ds140_11 ds140_12 ds140_13 ds140_14
/PRINT INITIAL EXTRACTION ROTATION
/FORMAT BLANK(.10)
/CRITERIA MINEIGEN(1) ITERATE(25)
/EXTRACTION PC
/CRITERIA ITERATE(25)
/ROTATION VARIMAX
/METHOD=CORRELATION .
unrotaded loadings
DS140_01 -0,472589983 0,56095286
DS140_02 0,54460413 0,47376757
DS140_03 -0,322244458 0,564883041
DS140_04 0,644901386 0,367213521
DS140_05 0,653880049 0,406234844
DS140_06 0,678331281 -0,178056681
DS140_07 0,602503396 0,169868767
DS140_08 0,633956607 -0,411035327
DS140_09 0,697733664 0,250684012
DS140_10 0,614519123 -0,461780638
DS140_11 0,60005226 -0,3432004
DS140_12 0,657063717 0,387872152
DS140_13 0,751822595 0,319709742
DS140_14 0,670741388 -0,320149821
rotated lodings
DS140_01 -0,733417555
DS140_02 0,721512351
DS140_03 0,108433988 -0,641230389
DS140_04 0,731634009 0,124319125
DS140_05 0,763297939
DS140_06 0,412130295 0,567438215
DS140_07 0,573827679 0,250175009
DS140_08 0,230223944 0,719616533
DS140_09 0,698707567 0,2479566
DS140_10 0,183040757 0,746572965
DS140_11 0,246954311 0,645649128
DS140_12 0,754130666 0,11603651
DS140_13 0,78428374 0,228802423
DS140_14 0,316255625 0,672586274
rotation matrix
1 2
1 0,773826782 0,633397277
2 0,633397277 -0,773826782
varimax rotation difference between R and SPSS
3 messages · Andreas Cordes, Jari Oksanen, Peter Dalgaard
On Thu, 2005-10-13 at 16:13 +0200, Andreas Cordes wrote:
Hi, I am puzzeled with a differing result of princomp in R and FACTOR in SPSS. Regarding the amount of explained Variance, the two results are the same. However, the loadings differ substantially, in the unrotated as well as in the rotated form. In both cases correlation matrices are analyzed. The sums of the squared components is one in both programs.
Not in the data that you pasted in your message. After reading in the data I get from the non-rotated R solution:
colSums(rpc^2)
V2 V3 1 1 And the non-rotated SPSS solutions gives:
colSums(spc^2)
V2 V3 5.363671 2.136624 After normalizing the SPSS pc's, the solutions are identical (within numerical accuracy) after reversing the sign of second pc. I don't want to look at the data full of holes, like the loadings from varimax rotation. However, it seems that the raw solutions are identical. cheers, jari oksanen
Jari Oksanen -- Dept Biology, Univ Oulu, 90014 Oulu, Finland
Andreas Cordes <andreas.cordes at stud.uni-goettingen.de> writes:
Hi, I am puzzeled with a differing result of princomp in R and FACTOR in SPSS. Regarding the amount of explained Variance, the two results are the same. However, the loadings differ substantially, in the unrotated as well as in the rotated form. In both cases correlation matrices are analyzed. The sums of the squared components is one in both programs. Maybe there is an obvious reason, but I somehow fail to see it.
I get
SPSS.res/ R.res
V2 V3 1 2.315960 -1.461720 2 2.315960 -1.461720 3 2.315960 -1.461720 4 2.315960 -1.461720 5 2.315960 -1.461720 6 2.315960 -1.461719 7 2.315960 -1.461720 8 2.315960 -1.461720 9 2.315960 -1.461719 10 2.315960 -1.461720 11 2.315960 -1.461720 12 2.315960 -1.461720 13 2.315960 -1.461719 14 2.315960 -1.461720 which I presume is part of the puzzle. I don't think varimax() wants its loadings normalized like they are in loadings(princomp()) (after all, it was designed for factanal(), not princomp()), and I wouldn't be the least surprised if the $sdev components of princomp() were related to 2.315960 and 1.461720.
O__ ---- Peter Dalgaard ??ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907