Graafisen rotaation kehittelyä

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 13.12.2004 15:18

Faktorianalyysin graafisen rotaation (ROTATE?) toimintatapaa on
yleistetty Lauri Tarkkosen ehdottamien periaatteiden mukaisesti.
1) On mahdollista valita mitkä muuttujat näkyvät faktoriavaruuden
projektioissa. Kun muuttujia on paljon, keskittyminen "tärkeimpiin"
selkeyttää tarkastelua.
2) Rotaation ohjaamiseen voidaan käyttää ulkoisia (external)
muuttujia. Tähän tarvitaan ao. muuttujien projektiot (lataukset)
faktoriavaruudessa ja sellaisiksi katsotaan ulkoisten muuttujien
ja faktoripistemäärien korrelaatiot. Ulkoiset muuttujat näkyvät
kuvissa harmaina.
Ulkoisten muuttujien käyttö antaa uusia mahdollisuuksia tehdä Survon
avulla faktorianalyysia konfirmatorisen analyysin tyyliin, mutta sitä
joustavammin.
Sukrokomento
/EXTFACTA <datatiedosto>,<faktorien_lukumäärä> 
luo valmiin kaavion graafisen rotaation tekemiseksi tässä yleistetyssä
muodossa käyttäjän valittua faktorianalyysiin tulevat muuttujat
maskein A (=näkyvät), B (=näkymättömät) ja maskein X ulkoiset muuttujat.
EXTFACTA muodostaa kaikkien muuttujien (A,B,X) korrelaatiomatriisin,
laskee faktorimatriisin FACT.M muuttujista A,B (oletus: ML-ratkaisu)
ja ulkoisten muuttujien lataukset matriisina EXTFACT.M suoraan
muuttujien A,B ja X välisten korrelaatioiden ja matriisin FACT.M avulla
(laskematta erikseen faktoripistemääriä).
Kaavio on muodoltaan esim. DECA-aineistoon sovellettuna:
MASK=--ABAAABBBAAXX
/EXTFACTA DECA,3
Setup for graphical factor rotation generated by /EXTFACTA:
Primary factor matrix saved in FACT.M             _ /MATSHOW FACT.M
EXTERNAL=EXTFACT.M Loadings of external variables _ /MATSHOW EXTFACT.M
FSHOW=FSHOW.M      Variables shown in displays    _ /MATSHOW FSHOW.M
ROTATE FACT.M,3,CUR+1 / METHOD=GRAPHICAL

                    - - -

Faktorianalyysin graafinen rotaatio ei ilmeisesti ole saatavilla
vieläkään muissa yleisissä tilasto-ohjelmissa, vaikka sillä on
jatkuvasti sijansa ajattelevien tutkijoiden käsissä.

Jotta useammat käyttäjät saisivat tilaisuuden oppia graafisen
rotaation taidot, olen täydentänyt ROTATE-ohjelmaa niin, että
se toimii myös tutoriaalisessa moodissa.
Siis SURVO MM:n versiosta 2.21 lähtien on mahdollista tehdä sukroja,
jotka suorittavat tutoriaalisessa moodissa tehdyn mallin mukaisesti
graafisen rotaation eri vaiheet.
Sukron listaukseen on lisättävissä tämän jälkeen selityksiä,
jotka näkyvät rotaatioikkunassa yksilöllisesti jokaisessa
suoritusvaiheessa.

Oppimisedellytysten parantamiseksi tulisi tehdä useita sukroja
esim. historiallisesti merkittävien aineistojen analyysin muodossa.
Tässä esittelen sukron ROT1, joka tekee DECA-aineiston 10 lajimuuttujan
ja 3 faktorin ML-faktoroinnin perusteella graafisen rotaation.

Tuo ML-faktoroinnin kuvasin (sukron /EXTFACTA sovelluksena) edellä.
Tämän jälkeen siirryin sukron A määrittelyyn tutoriaalisessa moodissa
napeilla F2 T S A ENTER ja aktivoin komennon
ROTATE FACT.M,3,CUR+1 / METHOD=GRAPHICAL .
Tein vinon (oblique) rotaatioratkaisun vaihe vaiheelta. Saatuani
mielestäni kelvollisen ratkaisun poistuin rotaatiosta ja lopetin
sukron määrittelyn (napeilla F2 T E).

Sukron A listaus on seuraava:
TUTLOAD A
{act}O|A109.22|R|N|A131.132|R|N|A100.134|R|A13.2269|R|N|A108.905|R|N|
N|N|X|{end}

Rotaation vaiheet näkyvät sukron A listauksessa koodisanoina, jotka
päättyvät merkkiin |. Esim. "O|" tarkoittaa vinorotaatioon siirtymistä
napilla O tai vastaavan painikkeen näpäytyksellä. "A109.22|"
puolestaan vastaa 109.22-asteisen kiertokulman valintaa (hiirellä),
"R|" itse rotaatiota ja "N|" seuraavan akseliparin valintaa. "X|" on
hyväksymiskuittaus (nappi X), jolloin poistutaan rotaatio-ohjelmasta.

Näitä epätavallisia (siis vain graafiseen rotaatioon liittyviä)
koodeja voi laventaa sanallisin selityksin, jotka ilmaantuvat
punaisina tekstiriveinä rotaatioikkunan alareunaan.
Esim. O| voidaan laajentaa muotoon
O:Ensimmäinen akselipari 1,2 - Siirrytään vinoon rotaatioon (O).|
ja A109.22| muotoon
A109.22:Rotaatio alkaa - Valitaan Y-akselin suunta (100m).|

Siis : aloittaa kommenttitekstin ja | lopettaa sen samoin kuin koko
koodisanan.
Lopullisen ROT1-sukron olen tehnyt muotoon, jossa aloitetaan
/EXTFACTA:lla ja jatketaan kommentein jalostetulla A-sukrolla:

TUTSAVE ROT1
{R}
MASK=--ABAAABBBAAXX-----------{R}
/EXTFACTA DECA,3{act}{R}
{R}{d2}
{act}O:Ensimmäinen akselipari 1,2 - Siirrytään vinoon rotaatioon (O).|
A109.22:Rotaatio alkaa - Valitaan Y-akselin suunta (100m).|
R:Y-akselin kiertokulma (109.22 astetta valittu!) - Rotatoidaan (R).|
N:Kierto vahvistettu - Valitaan seuraava akselipari (N).|
A131.132:Toinen akselipari 1,3 - Y-akselin suunnaksi Shotput|
R:Suunta 131.132 valittu - Rotatoidaan (R).|
N:Rotatoitu - seuraava akselipari!|
A100.134:Akselipari 2,3 - Valitaan suunta Shotput.|
R:Suunta 100.134 valittu - Rotatoidaan (R).|
A13.2269:Rotatoitu - Valitaan myös uusi X-akselin suunta (100m).|
R:Suunta 13.2269 valittu - Vahvistetaan X-akselin paikka.|
N:X-akseli asetettu - Uuteen akselipariin!|
A108.905:Uudelleen pari 1,2 - Y-akseli 100m:n kautta!|
R:Y-akseli 100m:n kautta asetettu - Vahvistetaan rotaatio.|
N:Rotaatio vahvistettu - Seuraava akselipari|
N:Ei muutettavaa - Seuraava akselipari|
X:Ei muutettavaa - Rotaatio valmis (X)|
{R}{d11}{u10}
{end}
.......................................................................
Jokaisella rotaatioaskeleella sukro pysähtyy ja näyttää kommentti-
tekstin punaisena rotaatioikkunan alareunassa. Seuraavaan vaiheeseen
siirrytään käyttäjän painettua ENTER-nappia.

Sukron /ROT1 päätettyä työnsä toimituskenttään tulee seuraavaa jälkeä:
(Huom. alla _ tarkoittaa todellisuudessa pientä mustaa neliötä.)

/ROT1
MASK=--ABAAABBBAAXX-----------
/EXTFACTA DECA,3
Setup for graphical factor rotation generated by /EXTFACTA:
Primary factor matrix saved in FACT.M             _ /MATSHOW FACT.M
EXTERNAL=EXTFACT.M Loadings of external variables _ /MATSHOW EXTFACT.M
FSHOW=FSHOW.M      Variables shown in displays    _ /MATSHOW FSHOW.M
ROTATE FACT.M,3,CUR+1 / METHOD=GRAPHICAL
Rotated factor matrix AFACT.M=FACT.M*inv(TFACT.M)'
             F1     F2     F3 Sumsqr
100m      0.007  0.944 -0.001  0.890
Shot_put  0.006  0.008  0.860  0.739
Hi_jump  -0.287 -0.521  0.048  0.356
400m      0.444  0.622 -0.107  0.596
Javelin  -0.158 -0.277 -0.008  0.102
1500m     1.009  0.010  0.016  1.019
L_jump   -0.264  0.107 -0.174  0.111
Hurdles  -0.128  0.306  0.000  0.110
Discus   -0.192 -0.025  0.746  0.595
Pole_vlt -0.157 -0.005 -0.321  0.128
Sumsqr    1.471  1.731  1.443  4.645

Valitettavasti tässä viestissä kuvalliset vaiheet jäävät pois.
Jotta niistä saisi edes jonkinlaisen käsityksen, olen siirtänyt kohtaa

R:Suunta 13.2269 valittu - Vahvistetaan X-akselin paikka.|

vastaavan kuvan verkkoon tiedostona, jonka Survosta avataan komennolla
/OPEN www.survo.fi/pictures/rot1.jpg 
(Kasvata kuvakokoa tarvittaessa.)

/ROT1:n antama rotatoitu faktorimatriisi AFACT.M vastaa erittäin hyvin
kosinirotaatiolla saatavaa:

MAT A1=AFACT.M     / Kopioidaan graafisen rotaation tulos matriisiksi A.
ROTATE FACT.M,3,CUR+1 / METHOD=COS
Rotated factor matrix AFACT.M=FACT.M*inv(TFACT.M)'
         Shot_p   100m  1500m Sumsqr
100m      0.000  0.941 -0.000  0.886
Shot_put  0.856  0.000  0.000  0.733
Hi_jump   0.052 -0.517 -0.280  0.349
400m     -0.113  0.617  0.435  0.583
Javelin  -0.006 -0.275 -0.154  0.100
1500m     0.000  0.000  0.997  0.995
L_jump   -0.169  0.111 -0.261  0.109
Hurdles   0.003  0.306 -0.128  0.110
Discus    0.747 -0.030 -0.194  0.596
Pole_vlt -0.317 -0.000 -0.153  0.124
Sumsqr    1.436  1.717  1.433  4.585

/TRAN-LEASTSQR A1,AFACT.M  / Tulosten vertailu transformaatioanalyysilla
MAT LOAD L.M,##.###,END+2  / Transformation matrix
MAT LOAD E.M,##.###,END+2  / Residual matrix

MATRIX L.M
Transformation_matrix
///      Shot_p   100m  1500m
F1       -0.016 -0.010  0.988
F2        0.001  0.998 -0.007
F3        0.996 -0.009 -0.006

Transformaatiomatriisi L.M osoittaa ratkaisujen yhtäpitävyyden.

                    - - -

Toivon hartaasti, että näille uudistuksille kuuluisi myönteistä
vastakaikua Survon käyttäjien suunnalta ja se ilmenisi hyviksi
sukroiksi purkitettujen rotaatioratkaisujen muodossa.

- Seppo Mustonen

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.