| Date: | Fri, 29 Sep 2000 13:56:58 -0500 |
| Reply-To: | "Nichols, David" <nichols@SPSS.COM> |
| Sender: | "SPSSX(r) Discussion" <SPSSX-L@LISTSERV.UGA.EDU> |
| From: | "Nichols, David" <nichols@SPSS.COM> |
| Subject: | Re: Bugs in factor analysis (promax and oblimin) |
|---|
Thank you for bringing this to our attention. It is indeed a bug. In
investigating it, I've discovered that it affects not just the oblique
rotation methods OBLIMIN and PROMAX, but also the orthogonal VARIMAX and
EQUAMAX methods. The problem seems to be that the algorithms for rotation do
not handle appropriately cases where a column of factor loadings are
constant, or very close to constant. I confirmed this by noting that if you
change the first correlation (that of v1 with v2) slightly, to say .6015,
the PROMAX, VARIMAX, and EQUAMAX methods start rotating away from the
constant or near constant solution and find correct rotations. The OBLIMIN
method requires a larger change, to about .6075, before it finds enough
variability to work with. The QUARTIMAX method seems to work correctly under
any of these circumstances; that is, it will handle the completely constant
case as well. I've filed a bug report delineating these findings.
I would hazard to guess that this problem has been in FACTOR for a very long
time (I confirmed that it occurs on Release 4.0 of SPSS for Unix, which is
the earliest version of SPSS to which I have access), and that the reason it
has gone undetected until now is that constant or nearly constant columns of
factor loadings are not going to occur in real data sets, but only with
hypothetical examples constructed according to particular structures, as I
assume these data represent.
Incidentally, the Stata results given here are also not entirely correct.
The data as given should produce identical sets of rotated loadings within
each set of five variables. There is some rounding or precision error in the
Stata results.
David Nichols
Principal Support Statistician and
Manager of Statistical Support
SPSS Inc.
> -----Original Message-----
> From: Keizo Hori [mailto:hori@EC.KAGAWA-U.AC.JP]
> Sent: Tuesday, September 26, 2000 12:13 PM
> To: SPSSX-L@LISTSERV.UGA.EDU
> Subject: [SPSSX-L] Bugs in factor analysis (promax and oblimin)
>
>
> I use spss 10.0.7 J.
> Oblique rotation (promax or oblimin) gives strange results.
> run sample syntax.
> Results are
> -------------------------
> factor pattern
> factor
> 1 2
> V1 .671 .387
> V2 .671 .387
> V3 .671 .387
> V4 .671 .387
> V5 .671 .387
> V6 .671 -.387
> V7 .671 -.387
> V8 .671 -.387
> V9 .671 -.387
> V10 .671 -.387
>
> factor 1 2
> 1 1.000 .000
> 2 .000 1.000
> ------------------------
> why spss iterates only one time.
>
> Correct answer is (Stata's results)
>
> . rotate, promax(4)
>
> (promax rotation)
> Rotated Factor Loadings
> Variable | 1 2 Uniqueness
> ----------+--------------------------------
> v1 | 0.77241 0.00414 0.40023
> v2 | 0.77268 0.00388 0.40001
> v3 | 0.77266 0.00400 0.39993
> v4 | 0.77249 0.00408 0.40014
> v5 | 0.77281 0.00381 0.39985
> v6 | 0.00411 0.77264 0.39988
> v7 | 0.00399 0.77257 0.40008
> v8 | 0.00396 0.77243 0.40032
> v9 | 0.00397 0.77270 0.39990
> v10 | 0.00387 0.77265 0.40006
>
> symmetric Phi[2,2]
> c1 c2
> c1 1
> c2 .49220776 1
>
>
> .
>
>
> spss syntax ----------------------------------.
> matrix data var=v1 to v10 /format =free full /n=1000 /contents=corr.
> begin data
> 1 0.6 0.6 0.6 0.6 0.3 0.3 0.3
> 0.3 0.3
> 0.6 1 0.6 0.6 0.6 0.3 0.3 0.3
> 0.3 0.3
> 0.6 0.6 1 0.6 0.6 0.3 0.3 0.3
> 0.3 0.3
> 0.6 0.6 0.6 1 0.6 0.3 0.3 0.3
> 0.3 0.3
> 0.6 0.6 0.6 0.6 1 0.3 0.3 0.3
> 0.3 0.3
> 0.3 0.3 0.3 0.3 0.3 1 0.6 0.6
> 0.6 0.6
> 0.3 0.3 0.3 0.3 0.3 0.6 1 0.6
> 0.6 0.6
> 0.3 0.3 0.3 0.3 0.3 0.6 0.6 1
> 0.6 0.6
> 0.3 0.3 0.3 0.3 0.3 0.6 0.6 0.6
> 1 0.6
> 0.3 0.3 0.3 0.3 0.3 0.6 0.6 0.6
> 0.6 1
> end data.
>
> FACTOR
> /matrix=in (cor=*) /ANALYSIS v1 to v10
> /PRINT INITIAL EXTRACTION ROTATION
> /CRITERIA FACTORS(2) ITERATE(25)
> /EXTRACTION ML
> /CRITERIA ITERATE(25)
> /ROTATION OBLIMIN(0) .
> FACTOR
> /matrix=in (cor=*) /ANALYSIS v1 to v10
> /PRINT INITIAL EXTRACTION ROTATION
> /CRITERIA FACTORS(2) ITERATE(25)
> /EXTRACTION ML
> /CRITERIA ITERATE(25)
> /ROTATION promax(4) .
>
> ----
> $BKY!!7<B$!J9a@nBg3X7P:Q3XIt!K (Be-mail: hori@ec.kagawa-u.ac.jp
> home page http://www.ec.kagawa-u.ac.jp/~hori/
> $BEEOCHV9f (B 087-832-1894( $BD>DL!K (B fax 087-832-1820
> $B!J;vL3<<!K (B
> $B") (B760-8523( $B$3$l$G9a@nBg3X7P:Q3XIt (B)
> $B9a@n8)9b>>;T9,D.#2!]#1!!9a@nBg3X7P:Q3XIt (B
>
|