Re: Graafinen rotaatio

[vastaus aiempaan viestiin]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 10.9.2001 16:44

Markku Verkasalo kirjoitti 7.9.2001 14:05 :

> Olen joskus kaivannut sellaista menettelyä, että voisin kääntää
> ratkaisun tietyn muuttujan suuntaiseksi automaattisesti (oikeastaan
> minulle tähän kävisi paremminkin muukin ratkaisu kuin graafinen
> rotaatio, ...

Olen vahvasti sitä mieltä, että uudessa ympäristössään Survon graafinen
rotaatio on niin kätevä, että tuo Markun toivomus toteutuu jo sitäkin
kautta.

Jos kuitenkin haluaa tehdä rotaation suoraan "tietyn muuttujan
suuntaiseksi automaattisesti", se onnistuu nähdäkseni Survon matriisi-
tulkin avulla seuraavaan tyyliin:

Käsittelen demoaineistona DECA-tiedostoa, jolle teen aluksi ML-ratkaisun
seuraavasti:
MASK=--AAAAAAAAAAAA-
CORR DECA
FACTA CORR.M,4

MAT LOAD FACT.M  / tässä siis 4 faktorin ML-ratkaisu
MATRIX FACT.M
F
///            F1       F2       F3       F4
100m      0.99722  0.02303  0.00256 -0.00287
L_jump    0.17487 -0.01897 -0.11994  0.49592
Shot_put -0.04315  0.68774 -0.38152 -0.17407
Hi_jump  -0.41412  0.10537 -0.28331  0.13233
400m      0.46014 -0.17294  0.50638  0.10501
Hurdles   0.31221  0.25587  0.07904  0.48269
Discus   -0.00011  0.66598 -0.49749 -0.09641
Pole_vlt  0.06352 -0.34282 -0.10161  0.01304
Javelin  -0.21969 -0.05122 -0.18498  0.12408
1500m    -0.28627 -0.36719  0.70688 -0.18529
Height   -0.13298  0.96837  0.11897  0.01982
Weight   -0.10260  0.88642 -0.15654 -0.09684

Jos nyt haluan kiertää faktoriakselistoa niin, että se kulkee
muuttujan 1500m kautta, erotan matriisista FACT.M tätä muuttujaa
koskevan rivin omaksi vektoriksi L:
MAT L=FACT.M(1500m,*)
MAT LOAD L
MATRIX L
FACT.M(1500m,*)
///            F1       F2       F3       F4
1500m    -0.28627 -0.36719  0.70688 -0.18529

ja "normalisoin" sen (alkioiden neliösummaksi 1) pystyvektoriksi V:
MAT V=NRM(L')      / *V~NRM(FACT.M(1500m,*)') 4*1

Otan rotaatiomatriisiksi T ensin puhtaan yksikkömatriisin
MAT T=IDN(4,4)

Koska muuttujalla 1500m on suurin lataus kolmannella faktorilla F3,
sijoitetaan T:hen 3. pystyvektoriksi V:
MAT T(1,3)=V

T on seuraavanlainen:
MAT LOAD T
MATRIX T
IDN&NRM(FACT.M(1500m,*)')
///             1        2        3        4
F1        1.00000  0.00000 -0.33038  0.00000
F2        0.00000  1.00000 -0.42377  0.00000
F3        0.00000  0.00000  0.81581  0.00000
F4        0.00000  0.00000 -0.21384  1.00000

Tämä T on ilmeisesti se mahdollisimman yksinkertainen "vino" rotaatio-
matriisi, joka tuottaa toivotun tuloksen, sillä jos tehdään sen
mukaan rotaatioratkaisu A alkuperäiselle matriisille FACT.M,

MAT A=FACT.M*INV(T')     / *A~F*IDN&NRM(FACT.M(1500m,*)')'' 12*4
MAT LOAD A
MATRIX A
F*INV(IDN&NRM(FACT.M(1500m,*)')')
///             1        2        3        4
100m      0.99826  0.02436  0.00313 -0.00220
L_jump    0.12630 -0.08127 -0.14701  0.46448
Shot_put -0.19766  0.48956 -0.46766 -0.27408
Hi_jump  -0.52886 -0.04180 -0.34727  0.05807
400m      0.66521  0.09010  0.62071  0.23774
Hurdles   0.34422  0.29692  0.09688  0.50341
Discus   -0.20158  0.40756 -0.60981 -0.22681
Pole_vlt  0.02238 -0.39560 -0.12455 -0.01360
Javelin  -0.29460 -0.14731 -0.22675  0.07559
1500m     0.00000  0.00000  0.86648  0.00000
Height   -0.08480  1.03017  0.14583  0.05101
Weight   -0.16600  0.80510 -0.19189 -0.13788

1500m latautuu puhtaasti 3. faktorille.

Vastaava toimenpide onnistuu käsivaraisesti graafisella rotaatiolla
ROTATE FACT.M,4,CUR+1 / ROTATION=GRAPHICAL
kun valitaan heti O=Oblique ja sitten 3:n sisältävät akseliparit
1-3, 2-3, 3-4, joissa kussakin (suoraan hiiren oikeanpuoleisella
painikkeella) pannaan faktoriakseli kulkemaan muuttujan 1500m
kautta. Ratkaisu on tällöin (pyöristysvirheitä lukuunottamatta)
identtinen äskeisen kanssa.
Kannattaa kokeilla (mukavimmin versiossa 1.09).

- 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.