Matriiseilla operointia (Viikon Vinkeimpiä #4)

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Kimmo Vehkalahti
Sähköposti:    -
Päiväys: 20.10.2004 10:42

Tämä juttu kuuluu joulukuun 2003 alussa aloittamaani jatkosarjaan
"Viikon Vinkeimpiä".

Tällä kertaa operoidaan hieman matriisien kanssa.

Erääseen kokeeseen liittyen on saatu oheinen faktorimatriisi:

LIMITS=-0.701,-0.301,0.3,0.7,1 SHADOWS=7,1,0,1,7  SUMS=2
LOADM AKOE4F,12.123,CUR+2
(valitettavasti värit eivät välity verkkoon - väliäkö sillä)
F*Transformation_matrix
             F1     F2     F3     F4     F5  Sumsqr
A01       0.767 -0.048 -0.001 -0.006  0.020  0.590
A02       0.789  0.023  0.026  0.008 -0.014  0.624
A03       0.756  0.018 -0.038 -0.023  0.025  0.575
A04       0.743 -0.053 -0.026 -0.011 -0.024  0.556
A05       0.660 -0.004 -0.018 -0.013  0.025  0.437
A06       0.701  0.019 -0.051 -0.037  0.028  0.496
A07       0.695  0.057  0.033  0.067 -0.049  0.495
A08       0.660  0.488  0.003  0.000  0.024  0.674
A09       0.579  0.573  0.022  0.050 -0.012  0.666
A10       0.630  0.517  0.020 -0.037  0.049  0.669
A11       0.559  0.523 -0.008 -0.188 -0.042  0.624
A12       0.588  0.524 -0.055 -0.235  0.020  0.679
A13       0.626  0.513 -0.041 -0.173 -0.064  0.691
A14       0.599  0.513 -0.038 -0.168 -0.036  0.654
A15       0.605  0.506 -0.020 -0.213 -0.022  0.668
A16       0.522  0.533  0.063 -0.206 -0.018  0.603
A17       0.519  0.531  0.126 -0.183 -0.003  0.601
A18       0.492  0.553  0.026 -0.228 -0.009  0.600
A19       0.494  0.472  0.101 -0.114 -0.021  0.490
A20       0.520  0.513  0.053 -0.221 -0.046  0.588
B01       0.023  0.397 -0.595  0.179 -0.183  0.578
B02       0.005  0.437 -0.613  0.201 -0.167  0.635
B03      -0.000  0.408 -0.608  0.132 -0.174  0.583
B04       0.037  0.402 -0.604  0.192 -0.177  0.596
B05       0.001  0.441 -0.577  0.215 -0.173  0.604
B06      -0.020  0.685 -0.189  0.024 -0.168  0.535
B07      -0.017  0.669 -0.172  0.070 -0.150  0.505
B08       0.029  0.550 -0.215  0.100 -0.246  0.421
B09      -0.012  0.640 -0.100  0.019 -0.186  0.454
B10       0.023  0.653 -0.146  0.079 -0.110  0.466
C01      -0.229 -0.026  0.664  0.173  0.390  0.677
C02      -0.166 -0.002  0.679  0.147  0.344  0.629
C03      -0.169 -0.048  0.741  0.162  0.316  0.706
C04      -0.203 -0.042  0.590  0.553  0.116  0.711
C05      -0.237 -0.002  0.562  0.490  0.118  0.626
C06      -0.168  0.012  0.582  0.537  0.067  0.660
C07      -0.177 -0.050  0.599  0.504  0.080  0.654
C08      -0.152  0.011  0.623 -0.014  0.035  0.413
C09      -0.190 -0.002  0.555 -0.014  0.019  0.345
C10      -0.169  0.019  0.603  0.024  0.086  0.400
D01       0.077 -0.434 -0.007  0.696  0.186  0.713
D02       0.025 -0.471 -0.036  0.682  0.177  0.720
D03       0.152 -0.460 -0.034  0.580  0.166  0.600
D04       0.044 -0.477  0.004  0.617  0.187  0.645
D05       0.074 -0.450  0.002  0.597  0.105  0.575
E01       0.108  0.045 -0.173  0.080  0.701  0.541
E02      -0.548  0.118 -0.153 -0.028  0.511  0.599
E03      -0.518  0.064 -0.191  0.017  0.533  0.592
E04      -0.513  0.040 -0.214 -0.062  0.337  0.428
E05      -0.214  0.115 -0.190  0.025  0.374  0.235
Sumsqr    9.271  7.552  6.036  3.792  2.177

Muuttujien nimet heijastelevat tiettyä rakennetta, jossa A:t latautuvat
F1:lle, B:t F2:lle jne. Rakenne ei kuitenkaan ole aivan yksinkertainen;
poikkeamia löytyy runsaasti kuten edeltä näkyy.

Nyt tarkoituksena olisi poimia ns. "kärkimuuttujat", ts. ne joiden
lataus on korkein (ottaen huomioon vain alkuperäisen rakenteen mukaiset
muuttujat). Tämä sujuukin mukavasti matriisitulkin MAX_IJ-operaatiolla:

MAT MAX1=MAX_IJ(AKOE4F(A01:A20,F1))
MAT MAX2=MAX_IJ(AKOE4F(B01:B10,F2))
MAT MAX3=MAX_IJ(AKOE4F(C01:C10,F3))
MAT MAX4=MAX_IJ(AKOE4F(D01:D05,F4))
MAT MAX5=MAX_IJ(AKOE4F(E01:E05,F5))

Rivi- ja sarakeotsikot, erityisesti riviotsikot ovat tässä hyödyksi,
sillä ne välittävät aivan oleellisen informaation - muuttujan nimen:

MAT LOAD MAX1
MATRIX MAX1
MAX_IJ(AKOE4F(A01:A20,F1))
///            F1
A02      0.788997

Seuraavaksi haluttaisiin tehdä painokerroinmatriisi, jossa painoina
ovat nollat ja ykköset siten että em. "kärkimuuttujilla" on ykköset
ja kaikilla muilla nollat.

(Mahdollisia) lukijoita härnätäkseni kysyn: "Millä tavalla kyseisen
painokerroinmatriisin voisi muodostaa?" (Tapoja on tietenkin useita.)
Kommentoikaa, niin palataan asiaan!

terveisin Kimmo

PS. On tullut tavaksi "arvioida" näiden VV-juttujen "lukukelpoisuutta".
Tällä kertaa LUE-komento valittaa, että "Tekstissä on liikaa lukuja!"

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.