Re: Matriiseilla operointia (Viikon Vinkeimpiä #4)

[vastaus aiempaan viestiin]

Kirjoittaja: Kimmo Vehkalahti
Sähköposti:    -
Päiväys: 22.10.2004 0:08

Jatkoa jännittävään jatkosarjaan, jonka aiheena ovat matriisit.

Tähän asti tapahtunut: on törmätty faktorimatriisiin AKOE4F, josta
on poimittu alkuperäisen rakenteen perusteella korkeimmat lataukset
faktoreittain sekä tieto siitä millä muuttujilla nuo korkeimmat
lataukset ovat. Tiedot on talletettu erillisiin 1x1-matriiseihin
MAX1, MAX2, MAX3, MAX4 ja MAX5.

Tiedot voitaisiin esittää tiiviimmin yhtenä ainoana vektorina:

MAT MAX=ZER(5,1)
MAT MAX(5,1)=MAX_IJ(AKOE4F(E01:E05,F5))
MAT MAX(4,1)=MAX_IJ(AKOE4F(D01:D05,F4))
MAT MAX(3,1)=MAX_IJ(AKOE4F(C01:C10,F3))
MAT MAX(2,1)=MAX_IJ(AKOE4F(B01:B10,F2))
MAT MAX(1,1)=MAX_IJ(AKOE4F(A01:A20,F1))
MAT MAX(0,1)="max"
MAT NAME MAX AS MAX

Aluksi MAX on nollavektori, minkä jälkeen se täytetään kohta kohdalta.
Tällä kertaa aloitin viimeisestä elementistä ja etenin kohti nollatta
elementtiä, jolla tarkoitetaan sarakeotsikkoa.

Otetaan vektori MAX esille transponoituna (vie tässä vähemmän rivejä):

MAT LOAD MAX'
MATRIX MAX'
///           A02      B06      C03      D01      E01
max      0.788997 0.685176 0.740926 0.696109 0.700670

"Kärkimuuttujat" ovat siis selvillä. Näiden tietojen perusteella voidaan
muodostaa haluttu painokerroinmatriisi PAINOT:

MAT DIM AKOE4F /* rowAKOE4F=50 colAKOE4F=5
MAT PAINOT=ZER(rowAKOE4F,colAKOE4F)
MAT RLABELS FROM AKOE4F TO PAINOT
MAT PAINOT(A02,1)=1 / Sinänsä toimivan ratkaisutavan heikkous on tässä
MAT PAINOT(B06,2)=1 / kohdassa: automatisoinnista ei ole tietoakaan
MAT PAINOT(C03,3)=1 / vaan ykköset sijoitetaan manuaalisesti oikeisiin
MAT PAINOT(D01,4)=1 / kohtiin. Uuden faktorimatriisin tapauksessa työ
MAT PAINOT(E01,5)=1 / jouduttaisiin tekemään käsin uudelleen. Ei hyvä!
MAT NAME PAINOT AS Kärkimuuttuja-asteikkojen_kertoimet
MAT CLABELS "%" TO PAINOT

Tulos on se mitä tavoiteltiin, mutta työn toistettavuus on heikko.

MAT LOAD PAINOT ## CUR+2

MATRIX PAINOT
Kärkimuuttuja-asteikkojen_kertoimet
///      %1 %2 %3 %4 %5
A01       0  0  0  0  0
A02       1  0  0  0  0
A03       0  0  0  0  0
A04       0  0  0  0  0
A05       0  0  0  0  0
A06       0  0  0  0  0
A07       0  0  0  0  0
A08       0  0  0  0  0
A09       0  0  0  0  0
A10       0  0  0  0  0
A11       0  0  0  0  0
A12       0  0  0  0  0
A13       0  0  0  0  0
A14       0  0  0  0  0
A15       0  0  0  0  0
A16       0  0  0  0  0
A17       0  0  0  0  0
A18       0  0  0  0  0
A19       0  0  0  0  0
A20       0  0  0  0  0
B01       0  0  0  0  0
B02       0  0  0  0  0
B03       0  0  0  0  0
B04       0  0  0  0  0
B05       0  0  0  0  0
B06       0  1  0  0  0
B07       0  0  0  0  0
B08       0  0  0  0  0
B09       0  0  0  0  0
B10       0  0  0  0  0
C01       0  0  0  0  0
C02       0  0  0  0  0
C03       0  0  1  0  0
C04       0  0  0  0  0
C05       0  0  0  0  0
C06       0  0  0  0  0
C07       0  0  0  0  0
C08       0  0  0  0  0
C09       0  0  0  0  0
C10       0  0  0  0  0
D01       0  0  0  1  0
D02       0  0  0  0  0
D03       0  0  0  0  0
D04       0  0  0  0  0
D05       0  0  0  0  0
E01       0  0  0  0  1
E02       0  0  0  0  0
E03       0  0  0  0  0
E04       0  0  0  0  0
E05       0  0  0  0  0

Tämä oli ns. viiden pisteen vihje. Neljän pisteen vihje kuuluu:
matriiseilla operoitaessa kannattaa usein hyödyntää myös Survon
datatiedostoja.

Alkuperäinen kysymys tarkennettuna näillä vihjeillä kuuluu siten:

"Millä tavoin PAINOT-matriisi muodostetaan ilman em. käsityövaihetta,
ts. niin että työ voidaan toistaa helposti vaikka faktorimatriisin
sisältö muuttuu?"

terv. Kimmo

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.