Uusia faktorianalyysin rotaatiomenetelmiä

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 19.12.2004 20:36

Vaikuttaa siltä, että Robert I. Jennrich (UCLA:n emeritusprofessori)
on viime vuosina kääntänyt rotaatiomenetelmät aivan uuteen valoon.

Hän on tutkimuksissaan

Jennrich, R. I. (2001). A simple general procedure for orthogonal
rotation. Psychometrika, 66, 289-306.

Jennrich, R.I. (2002). A simple general method for oblique rotation.
Psychometrika, 67, 7-19.

Jennrich, R.I. (2004). Rotation to simple loadings using component
loss functions: The orthogonal case. Psychometrika, 69, 257-273.
http://preprints.stat.ucla.edu/402/revision.pdf 

Jennrich, R.I. (2004). Rotation to simple loadings using component
loss functions: The oblique case. (Manuscript July 30, 2004).
http://preprints.stat.ucla.edu/403/revision5.pdf 

kehittänyt yleisen gradienttimenetelmään perustuvan algoritmin,
jolla sekä ortogonaaliset että vinot rotaatioratkaisut saadaan
lasketuksi tehokkaasti hyvin monenlaisilla rotaatiokriteereillä,
ja
tuonut esille CLF-kriteerien (Component Loss Functions) edut
moniin muihin rotaatiomenetelmiin verrattuna.

Yleisessä "vinorotaatiossa" tapahtuu muunnos L=A*inv(T')
primääriratkaisusta (tavallisesti nykyisin ML-ratkaisu) A
rotatoituun faktorimatriisiin L rotaatiomatriisin T välityksellä
ja siinä T:n on toteutettava ehto diag(T'*T)=I eli T:n pystyrivit ovat
yksikkövektorin mittaisia. Kts. esim.
http://www.survo.fi/mustonen/monim.pdf 
(kohta 5.4 Rotaatiomenetelmät, jossa L:n paikalla on A*).

Rotaatiokriteerit ovat L:n alkioiden funktioita, joita pyritään
optimoimaan niin, että Thurstonen yksinkertaisen rakenteen vaatimukset
toteutuvat mahdollisimman hyvin.
Parhaat kriteerit ovat olleet yleensä kohtalaisen mutkikkaita.
Sen vuoksi on hämmästyttävää, että Jennrich onnistuu sekä teoreettisilla
että empiirisillä tarkasteluilla osoittamaan, että parhaisiin
kriteereihin kuuluu

   f(L) = summa |L(i,j)|
           i,j

siis yksinkertaisesti kaikkien rotatoitujen latausten itseisarvojen
summa, joka tulee tehdä mahdollisimman pieneksi valitsemalla T
sopivasti.
Funktio f(L) on kuitenkin hankala minimoitava, koska se on ikäänkuin
monen "harjakaton" muodostelma eli sillä voi olla lukuisia paikallisia
minimikohtia.
Osoittautuu, että lähtemällä riittävän useasta (esim. sadasta) satun-
naisesta T-matriisista ja käyttämällä Jennrichin gradienttimenetelmää,
syntyy kelpo ratkaisuja.

Ortogonaalisessa tilanteessa eli L=F*T ja T'T=I Jennrichin suosittelema
kriteeri on (linear right constant)

   f_lrc(L) = summa h(L(i,j)),
               i,j

missä

   h(u) = (u/b)^2, kun |u|<=b,
   h(u) = 1,       kun |u|> b.

b on tyypillisesti luokkaa 0.3 mutta valittava tilanteen mukaan.

Hyviä tuloksia antaa myös "entropiafunktio"

   h(u) = -u^2*log(u^2).

Silloin kun rakenne on todella yksinkertainen eli jokainen muuttuja
latautuu vain yhdelle faktoreista, kaikki Jennrichin esittämät kriteerit
antavat aina tuon yksinkertaisen ratkaisun.
Ne toimivat hyvin myös muissakin tilanteissa.

Sivulla (Gradient Projection Algorithms)
http://www.stat.ucla.edu/research/gpa/ 
Jennrich kuvaa algoritminsa (esim. Matlab-koodina) ja tätä tietoa
hyödyntämällä olen laajentanut Survon ROTATE-modulia seuraavasti:

ROTATION=CLF             itseisarvokriteeri f (vinorotaatio)
ROTATION=ORTHO_CLF,b     linear right constant (ortogonaalinen)
ROTATION=ENTROPY         entropiafunktio (ortogonaalinen)

Lisäksi myötäjäisinä mukaan tulevat ennestään tunnetut

ROTATION=QUARTIMIN       (vinorotaatio)
ROTATION=QUARTIMAX       (ortogonaalinen).
Jälkimmäistä on jo aikaisemmin voinut soveltaa (painike Q) Survon
graafisessa rotaatiossa.

Esimerkki 1: Ortogonaaliset faktorit
====================================
Tarkastelen kaavamaista esimerkkiä, jossa todellinen faktorirakenne on

MATRIX L0
///         F1    F2    F3
X1        0.90  0.00  0.00
X2        0.00  0.80  0.00
X3        0.00  0.00  0.70
X4        0.60  0.45  0.00
X5        0.60  0.00  0.45
X6        0.00  0.45  0.45
X7        0.50  0.35  0.00
X8        0.50  0.00  0.35
X9        0.00  0.35  0.35

L0 on hieman yleisempi kuin Jennrichillä, jonka vastaavassa esimerkissä
kaikki kommunaliteetit (vaakarivineliösummat) olivat ykkösiä.
Lisäksi "vaikeutan" tehtävää siten, että rekonstruoin tätä rotatoitua
matriisia vastaavan pääakseliratkaisun A, jonka tulee olla pystyriveit-
täin ortogonaalinen. A lasketaan matriisikäskyin

MAT SAVE L0
MAT K=L0'*L0       / *K~L0'*L0 S3*3
MAT SPECTRAL DECOMPOSITION OF K TO S,L
MAT T0=S'          / *T0~S(L0'*L0)' 3*3
MAT A!=L0*T0'       / *A~L0*S(L0'*L0)'' 9*3

MAT LOAD A,12.123,CUR+1
MATRIX A
///         ev1    ev2    ev3
X1       -0.742  0.497  0.109
X2       -0.335 -0.592  0.421
X3       -0.266 -0.268 -0.589
X4       -0.683 -0.001  0.310
X5       -0.666  0.159 -0.306
X6       -0.360 -0.505 -0.142
X7       -0.559  0.017  0.245
X8       -0.545  0.142 -0.234
X9       -0.280 -0.393 -0.110

Tarkistetaan A:n ortogonaalisuus:
MAT B=A'*A         / *B~A'*A S3*3
MAT LOAD B
MATRIX B
A'*A
///           ev1      ev2      ev3
ev1       2.46148  0.00000 -0.00000
ev2       0.00000  1.12583 -0.00000
ev3      -0.00000 -0.00000  0.87270

......................................................................
Sitten A-matriisin rotaatioihin, ensin Varimax:
ROTATE A,3,CUR+1 / ROTATION=VARIMAX
Rotated factor matrix AFACT.M=A*TFACT.M
            ev1    ev2    ev3 Sumsqr
X1       -0.896  0.057  0.057  0.810
X2       -0.050 -0.798  0.002  0.640
X3       -0.044  0.001 -0.699  0.490
X4       -0.626 -0.411  0.039  0.563
X5       -0.626  0.039 -0.411  0.562
X6       -0.057 -0.448 -0.448  0.405
X7       -0.520 -0.318  0.032  0.373
X8       -0.520  0.032 -0.318  0.373
X9       -0.044 -0.349 -0.349  0.245
Sumsqr    2.138  1.236  1.086  4.460

Jennrichin "linear right constant" ratkaisu oletusparametrilla b=0.3:
ROTATE A,3,CUR+1 / ROTATION=ORTHO_CLF
Rotated factor matrix AFACT.M=A*TFACT.M
            ev1    ev2    ev3 Sumsqr
X1        0.900 -0.000  0.000  0.810
X2        0.000  0.800 -0.000  0.640
X3       -0.000  0.000  0.700  0.490
X4        0.600  0.450  0.000  0.563
X5        0.600 -0.000  0.450  0.563
X6       -0.000  0.450  0.450  0.405
X7        0.500  0.350  0.000  0.373
X8        0.500 -0.000  0.350  0.373
X9       -0.000  0.350  0.350  0.245
Sumsqr    2.030  1.290  1.140  4.460

Tässä näkyvät myös kosiniratkaisun kyvyt:
ROTATE A,3,CUR+1 / ROTATION=COS
Rotated factor matrix AFACT.M=A*inv(TFACT.M)'
             X1     X2     X3 Sumsqr
X1        0.900  0.000  0.000  0.810
X2       -0.000  0.800  0.000  0.640
X3        0.000  0.000  0.700  0.490
X4        0.600  0.450  0.000  0.563
X5        0.600  0.000  0.450  0.563
X6        0.000  0.450  0.450  0.405
X7        0.500  0.350  0.000  0.373
X8        0.500  0.000  0.350  0.373
X9        0.000  0.350  0.350  0.245
Sumsqr    2.030  1.290  1.140  4.460

Siis kyllä Varimax (joka on nykyinen standardiratkaisu)
kelvollisen tuloksen antaa, mutta "Jennrich" ja "kosini" osuvat
aivan tarkasti maaliin.

Esimerkki 2: Thurstonen laatikko-ongelma 26 muuttujalla
=======================================================
Tässä ei riitä ortogonaalinen rotaatio, sillä alkuperäiset laatikkojen
päädimensiot korreloivat. Siitä ja eräistä tuohon ongelmaan liittyvistä
epämääräisyyksistä  mainitsin viestissäni
"Korrelaatiomatriisin tallentaminen ja ihan muuta" 26.12.2004.
Jennrich on käyttänyt rotaatioiden lähtökohtana primääriratkaisua A26,
joka esiintyy artikkelissa
Cureton, E. E. & Mulaik, S. A. (1975). The weighted varimax rotation and
the promax rotation. Psychometrika, 40, 183-185.

Curetonin ja Mulaikin Promax-ratkaisu oli kaiketi ensimmäinen
analyyttinen menettely, joka löysi "oikeat" päädimensiot x,y,z.

Jos matriisiin A26 kohdistetaan komento
ROTATE A26,3,CUR+1 / ROTATION=CLF
saadaan alla olevan taulukon oikeanpuoleinen matriisi.

          Faktorimatriisi          Rotatoitu faktorimatriisi
          (Cureton&Mulaik)         (CLF-rotaatio)
              1      2      3       1      2      3
x         0.629 -0.494  0.579      -0.990  0.006 -0.006
y         0.751  0.602  0.125      -0.067 -0.050  0.941
z         0.765 -0.230 -0.572      -0.009 -0.961  0.065
xy        0.866  0.131  0.459      -0.640  0.010  0.647
xz        0.873 -0.473 -0.042      -0.601 -0.645  0.010
yz        0.906  0.250 -0.323       0.014 -0.643  0.615
x2y       0.824 -0.149  0.528      -0.835 -0.011  0.390
xy2       0.859  0.358  0.306      -0.390 -0.037  0.814
x2z       0.812 -0.518  0.203      -0.790 -0.419 -0.011
xz2       0.951 -0.441 -0.254      -0.452 -0.856  0.035
y2z       0.876  0.406 -0.185       0.009 -0.452  0.766
yz2       0.885  0.095 -0.431       0.018 -0.782  0.444
xdy      -0.102 -0.936  0.322      -0.739 -0.010 -0.821
ydx       0.102  0.936 -0.322       0.739  0.010  0.821
xdz      -0.081 -0.163  0.969      -0.806  0.819  0.010
zdx       0.081  0.163 -0.969       0.806 -0.819 -0.010
ydz       0.006  0.810  0.582       0.010  0.793  0.843
zdy      -0.006 -0.810 -0.582      -0.010 -0.793 -0.843
xpy       0.852  0.223  0.420      -0.552  0.017  0.714
xpz       0.861 -0.483 -0.094      -0.561 -0.688 -0.015
ypz       0.912  0.248 -0.304      -0.004 -0.630  0.620
sxy       0.847  0.218  0.405      -0.541  0.004  0.704
sxz       0.845 -0.456 -0.106      -0.530 -0.680 -0.002
syz       0.902  0.246 -0.272      -0.026 -0.598  0.619
xyz       0.987 -0.026  0.043      -0.459 -0.467  0.483
sxyz      0.965  0.057 -0.028      -0.348 -0.487  0.532

Promax-ratkaisu ei ole tässä näkyvillä, mutta voin todeta, että
CLF-rotaatio on kyllä siihen verrattuna puhtaampi.
Esimerkin vaikeutta kuvaa sekin, että esim. Oblimin-, Quartimin- ja
kosinirotaatiot eivät päädy parhaaseen tulokseen.

                    - - -

Aiheesta kiinnostuneiden kannattaa todella tutustua yllä mainittuihin
Jennrichin artikkeleihin.
Survoon uudet ROTATION-optiot tulevat mukaan versiosta 2.22 lähtien.

- Seppo

Vastaukset:

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.