[vastaus aiempaan viestiin]
| Kirjoittaja: | Kimmo Vehkalahti |
|---|---|
| Sähköposti: | - |
| Päiväys: | 21.10.2004 11:04 |
En vielä paljasta mitään painokerroinmatriisin tekemisestä, johon
usutin eilisessä viestissäni. Sen sijaan heitän lisää löylyä otsikon
suomissa rajoissa.
Tuli mieleen näistä matriiseilla operoinneista ja regressioanalyysin
tulosten tallettamisesta matriisimuotoon (ks. myös "Toivomuksia
täsmennyksistä ym." -keskustelu) pieni esimerkki josta saattaisi
olla iloa joillekuille.
Helsingin yliopiston matematiikan ja tilastotieteen laitoksella
luennoimani Data-analyysi II -kurssin alussa minulla on ollut tapana
kerrata matriisilaskennan käsitteitä numeerisilla laskelmilla. Ohessa
tämän syksyn tehtävän "malliratkaisuja". Jutun viittaukset kohdistuvat
luentomonisteeseeni http://www.helsinki.fi/~kvehkala/da2/moniste.pdf
sekä Timo Patovaaran vektori- ja matriisilaskennan monisteeseen, joka
on tässä vaiheessa oleville (pääaine)opiskelijoillemme tutumpi kuin
esim. Sepon monimuuttujamenetelmien kirja.
NHL:n työsulku jatkuu, mutta se ei tätä tehtävää haittaa... ;-)
terv. Kimmo
-------------------------------------------------------------------------------
Kimmon kommentteja matriisitehtävistä
Osa käyttämistäni komennoista eroaa hieman ohjeissa annetuista
ja selitystekstiä on valmiiksi annetuissa kohdissa vähemmän.
Vertaa omiin tuloksiisi, pohdi ja kokeile.
........................................................................
Oheisessa taulukossa on NHL:n kauden 2002-2003 runkosarjan
maalintekotilastoja 30 eniten pisteitä keränneen keskushyökkääjän
osalta (muuttujien selitykset taulukon alla):
MATRIX NHL
/// Goals ShortHG EvenSG
Forsberg 29 21 8
Thornton 36 22 12
Lemieux 28 14 14
Modano 28 21 5
Fedorov 36 24 10
Prospal 22 13 9
Lecavalier 33 20 11
Richards 17 13 4
Sundin 37 18 16
Koivu 21 15 5
Morrison 25 17 6
Lang 22 12 10
Cassels 20 10 9
Weight 15 8 7
Jokinen 36 20 13
Yashin 26 12 14
O_Neill 30 19 11
Damphousse 23 8 15
Marchant 20 12 7
White 25 16 8
Nylander 17 10 7
Craig 22 17 5
Roenick 27 18 8
Rucchin 20 1 13
Briere 24 0 15
Zhamnov 15 3 10
Sakic 26 0 18
Nedved 27 3 16
Francis 22 1 13
Elias 28 0 22
Goals Goals (maalit kaikkiaan)
ShortHG Short handed goals (alivoimamaalit)
EvenSG Even strength goals (tasakentällisin tehdyt maalit)
Lähteet: www.nhl.com, www.nhlpa.com
........................................................................
Regressioanalyysia
MAT SAVE NHL / matriisin talletus tiedostoksi NHL.MAT
Dimensiot esille:
MAT DIM NHL /* rowNHL=30 colNHL=3
"Ykköstolppa" kaikkine koristeineen:
MAT I1=CON(rowNHL,1)
MAT NAME I1 AS 1
MAT RLABELS FROM NHL TO I1 / riviotsikoiden kopiointi
MAT I1(0,1)="Vakio" / sarakeotsikko paikalleen
MAT LOAD I1' ### CUR+1 / tehty vektori esille transponoituna
MATRIX I1'
1'
/// For Tho Lem Mod Fed Pro Lec Ric Sun Koi Mor Lan Cas Wei Jok Yas O_N Dam Mar Whi Nyl Cra Roe Ruc Bri Zha Sak Ned Fra Eli
Vakio 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Formaatti ### määrää esitysleveyden; myös otsikot noudattavat sitä.
Sen voi antaa myös numeerisena, esim. 111 tai 123.
Erotetaan Goals vektoriksi Y, asetetaan sen tilalle I1 ja nimetään
näin saatu selittäjien matriisi X:ksi:
MAT Y!=NHL(*,Goals)
MAT NHL(1,1)=I1
MAT X!=NHL / *X~NHL&1 30*3
MAT LOAD X
MATRIX X
/// Vakio ShortHG EvenSG
Forsberg 1 21 8
Thornton 1 22 12
Lemieux 1 14 14
Modano 1 21 5
Fedorov 1 24 10
Prospal 1 13 9
Lecavali 1 20 11
Richards 1 13 4
Sundin 1 18 16
Koivu 1 15 5
Morrison 1 17 6
Lang 1 12 10
Cassels 1 10 9
Weight 1 8 7
Jokinen 1 20 13
Yashin 1 12 14
O_Neill 1 19 11
Damphous 1 8 15
Marchant 1 12 7
White 1 16 8
Nylander 1 10 7
Craig 1 17 5
Roenick 1 18 8
Rucchin 1 1 13
Briere 1 0 15
Zhamnov 1 3 10
Sakic 1 0 18
Nedved 1 3 16
Francis 1 1 13
Elias 1 0 22
MAT LOAD Y
MATRIX Y
/// Goals
Forsberg 29
Thornton 36
Lemieux 28
Modano 28
Fedorov 36
Prospal 22
Lecavali 33
Richards 17
Sundin 37
Koivu 21
Morrison 25
Lang 22
Cassels 20
Weight 15
Jokinen 36
Yashin 26
O_Neill 30
Damphous 23
Marchant 20
White 25
Nylander 17
Craig 22
Roenick 27
Rucchin 20
Briere 24
Zhamnov 15
Sakic 26
Nedved 27
Francis 22
Elias 28
Ortogonaaliprojektori H:
MAT H=X*INV(X'*X)*X'
Projektiomatriisina H:n tulee olla symmetrinen ja idempotentti.
Todetaan ensin symmetrisyys:
MAT EROTUS=H-H' / *EROTUS~X*INV(X'*X)*X'-(X*INV(X'*X)*X')' 30*30
Tämän pitäisi olla nollamatriisi. Voidaan todeta esim. laskemalla
alkioiden neliöiden summa (pelkkä summa ei riitä, miksi?).
MAT NSUMMA=SUM(SUM(EROTUS,2)')
Sisempi SUM(EROTUS,2) laskee EROTUS-matriisin sarakkeittaiset
neliösummat rivivektoriksi. Se transponoidaan (') ja lasketaan
näin saadusta sarakevektorista alkioiden summa.
Tulos on puhdas nolla kuten pitääkin:
MAT LOAD NSUMMA 1.1234567890123456 CUR+1
MATRIX NSUMMA
SUM(SUM(X*INV(X'*X)*X'-(X*INV(X'*X)*X')',2)')
/// Sum2
Sum 0.0000000000000000
Huomaa, miten matriisin sisäinen nimi kertoo tarkemmin, miten
lopputulos on syntynyt, ja miten sitä tukevat rivi- ja sarakeotsikot.
Toinen tapa laskea sama asia on koota matriisin alkiot vektoriksi
VEC-operaatiolla ja laskea sitten vektorin alkioiden neliösumma:
MAT NSUMMA=SUM(VEC(EROTUS),2)
Sama numeerinen tulos, eri lauseke, ja hieman eri otsikot:
MAT LOAD NSUMMA 1.1234567890123456 CUR+1
MATRIX NSUMMA
SUM(VEC(X*INV(X'*X)*X'-(X*INV(X'*X)*X')'),2)
/// 1
Sum2 0.0000000000000000
Tietenkin tulos on selvä jo teoreettisen kaavan perusteella:
H-H' = X*INV(X'*X)*X'-(X*INV(X'*X)*X')'
= X*INV(X'*X)*X'-X*INV(X'*X)*X'
= 0
Idempotenttisuus selviää samaan tapaan. Väitteenä on, että H^2 = H.
MAT H2=H^2 / *H2~(X*INV(X'*X)*X')^2 30*30
MAT EROTUS=H2-H / *EROTUS~(X*INV(X'*X)*X')^2-X*INV(X'*X)*X' 30*30
MAT NSUMMA=SUM(SUM(EROTUS,2)')
Lopputulos nähdään myös näin
(aktivoi heti yhtäsuuruusmerkin oikealta puolelta):
MAT_NSUMMA(1,1)=5.2956275586818e-031
(Kyseessä on puhdas nolla, vaikkei se siltä heti näytäkään.)
Ja tietenkin asia selviää teoreettisesti yhtä suoraviivaisesti:
H-H^2 = X*INV(X'*X)*X'-(X*INV(X'*X)*X')^2
= X*INV(X'*X)*X'-X*INV(X'*X)*X'*X*INV(X'*X)*X'
= X*INV(X'*X)*X'-X*INV(X'*X)*X'
= 0
Muodostetaan yksikkömatriisi I ja asetetaan sille samat otsikot
kuin NHL-matriisin riveillä (havaintojen tunnukset):
MAT I=IDN(rowNHL,rowNHL)
MAT RLABELS FROM NHL TO I
MAT I!=I' / *I~IDN' D30*30
MAT RLABELS FROM NHL TO I
MAT LOAD I # CUR+2 / (kapein mahdollinen formaatti)
MATRIX I
/// F T L M F P L R S K M L C W J Y O D M W N C R R B Z S N F E
Forsberg 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Thornton 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Lemieux 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Modano 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Fedorov 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Prospal 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Lecavali 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Richards 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Sundin 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Koivu 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Morrison 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Lang 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Cassels 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Weight 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Jokinen 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Yashin 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
O_Neill 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
Damphous 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Marchant 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
White 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Nylander 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
Craig 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
Roenick 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
Rucchin 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
Briere 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
Zhamnov 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
Sakic 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
Nedved 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
Francis 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
Elias 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Projektiomatriisi J on ominaisuuksiltaan vastaavankaltainen kuin
edellä tarkasteltu H. Se projisoi y:n aliavaruuteen (suoralle) C(1),
kun taas H projisoi y:n aliavaruuteen C(X) (eli X:n sarakeavaruuteen).
MAT J=I1*INV(I1'*I1)*I1'
MAT LOAD J #.## CUR+2
MATRIX J
1*INV(1'*1)*1'
/// Fors Thor Lemi Moda Fedo Pros Leca Rich Sund Koiv Morr Lang Cass Weig Joki Yash O_Ne Damp Marc Whit Nyla Crai Roen Rucc Brie Zham Saki Nedv Fran Elia
Forsberg 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Thornton 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Lemieux 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Modano 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Fedorov 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Prospal 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Lecavali 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Richards 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Sundin 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Koivu 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Morrison 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Lang 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Cassels 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Weight 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Jokinen 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Yashin 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
O_Neill 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Damphous 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Marchant 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
White 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Nylander 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Craig 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Roenick 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Rucchin 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Briere 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Zhamnov 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Sakic 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Nedved 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Francis 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Elias 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03 0.03
Matriisissa J esiintyvä luku on yhtäkuin 1/n=0.03333333333333
Tämä selviää miettimällä lausekkeen I1*INV(I1'*I1)*I1'
syvintä olemusta; kyseessähän on pelkkien ykkösten manipulointi.
Lasketaan edellä muodostettujen matriisien avulla joitakin tuloksia:
MAT BHAT=INV(X'*X)*X'*Y / regressiokertoimet normaaliyhtälöistä (1.7)
MAT LOAD BHAT
MATRIX BHAT
INV(X'*X)*X'*Y
/// Goals
Vakio 1.493070
ShortHG 0.831310
EvenSG 1.265688
MAT YHAT=X*BHAT / sovite (1.13)
tai
MAT YHAT=H*Y / sovite (1.13), toinen tapa
MAT LOAD YHAT
MATRIX YHAT
X*INV(X'*X)*X'*Y
/// Goals
Forsberg 29.07608
Thornton 34.97014
Lemieux 30.85104
Modano 25.27901
Fedorov 34.10138
Prospal 23.69129
Lecavali 32.04183
Richards 17.36285
Sundin 36.70766
Koivu 20.29116
Morrison 23.21946
Lang 24.12567
Cassels 21.19736
Weight 17.00337
Jokinen 34.57321
Yashin 29.18842
O_Neill 31.21052
Damphous 27.12887
Marchant 20.32860
White 24.91953
Nylander 18.66598
Craig 21.95378
Roenick 26.58215
Rucchin 18.77833
Briere 20.47840
Zhamnov 16.64388
Sakic 24.27546
Nedved 24.23801
Francis 18.77833
Elias 29.33821
MAT RES=Y-YHAT / residuaali (1.14)
tai
MAT RES=(I-H)*Y / residuaali (1.14), toinen tapa
MAT LOAD RES
MATRIX RES
(I-X*INV(X'*X)*X')*Y
/// Goals
Forsberg -0.07608
Thornton 1.02986
Lemieux -2.85104
Modano 2.72099
Fedorov 1.89862
Prospal -1.69129
Lecavali 0.95817
Richards -0.36285
Sundin 0.29234
Koivu 0.70884
Morrison 1.78054
Lang -2.12567
Cassels -1.19736
Weight -2.00337
Jokinen 1.42679
Yashin -3.18842
O_Neill -1.21052
Damphous -4.12887
Marchant -0.32860
White 0.08047
Nylander -1.66598
Craig 0.04622
Roenick 0.41785
Rucchin 1.22167
Briere 3.52160
Zhamnov -1.64388
Sakic 1.72454
Nedved 2.76199
Francis 3.22167
Elias -1.33821
Jos sarakeotsikko "Goals" häiritsee, sen voi vaihtaa:
MAT RES(0,1)="Jäännös"
MAT LOAD RES(Koivu:Jokinen,*),CUR+1 / (vain valitut rivit)
MATRIX RES
(I-X*INV(X'*X)*X')*Y
/// Jäännös
Koivu 0.70884
Morrison 1.78054
Lang -2.12567
Cassels -1.19736
Weight -2.00337
Jokinen 1.42679
Neliösummat (1.21)-(1.23)
MAT SSR=Y'*(H-J)*Y
MAT SSE=Y'*(I-H)*Y
MAT SST=Y'*(I-J)*Y
Nämä ovat siis 1x1-matriiseja eli skalaareja:
MAT DIM SSR /* rowSSR=1 colSSR=1 rankSSR=1
MAT DIM SSE /* rowSSE=1 colSSE=1 rankSSE=1
MAT DIM SST /* rowSST=1 colSST=1 rankSST=1
MAT LOAD SSR
MATRIX SSR
Y'*(X*INV(X'*X)*X'-1*INV(1'*1)*1')*Y
/// Goals
Goals 996.3787
tai MAT_SSR(Goals,Goals)=996.37872798624
tai MAT_SSR(1,1)=996.37872798624
Vastaavat varianssit (tai keskineliöt) (ks. taulukko 1.1)
Dimensiot: n=rowNHL p=colNHL k=p-1
MAT MSR=SSR/k / *MSR~Y'*(X*INV(X'*X)*X'-1*INV(1'*1)*1')*Y/k D1*1
MAT MSE=SSE/(n-k-1) / *MSE~Y'*(I-X*INV(X'*X)*X')*Y/(n-k-1) D1*1
MAT MST=SST/(n-1) / *MST~Y'*(I-1*INV(1'*1)*1')*Y/(n-1) D1*1
........................................................................
Varianssitaulu
Dimensiot: n=30 k=2
SSR=MAT_SSR(1,1) MSR=MAT_MSR(1,1) F=MSR/MSE p=1-F.F(k,n-k-1,F)
SSE=MAT_SSE(1,1) MSE=MAT_MSE(1,1) s2=MSE
SST=MAT_SST(1,1) MST=MAT_MST(1,1) R2=SSR/SST
Yleis-F-testin testisuure F=121.1943656918
liittyy siis hypoteesin (1.25) testaukseen.
Miten testissä käy, kun p-arvo on p=0.00000000000003
eli mitä se sanallisesti tarkoittaa?
Jäännösvarianssin harhaton estimaatti on s2=4.1106643955713
eli jäännöshajonta on sqrt(s2)=2.0274773477332
ja mallin selitysaste puolestaan R2=0.89977309050261
Mitä kaikkea saaduista tuloksista voi päätellä?
Tuloksista voi päätellä mm., että ainakin toinen varsinaisten selittäjien
regressiokertoimista poikkeaa tilastollisesti merkitsevästi nollasta.
........................................................................
Otossuureiden laskeminen
Palautetaan aluksi Y (Goals) matriisiin NHL vakion tilalle:
MAT NHL(1,1)=Y
(vakiovektoria tarvittiin vain regressiotarkasteluihin).
Nyt aineisto on siis alkuperäisessä muodossaan:
(sisäinen nimi kertoo edelleen tehdyistä muutoksista)
MAT LOAD NHL
MATRIX NHL
NHL&1&Y
/// Goals ShortHG EvenSG
Forsberg 29 21 8
Thornton 36 22 12
Lemieux 28 14 14
Modano 28 21 5
Fedorov 36 24 10
Prospal 22 13 9
Lecavali 33 20 11
Richards 17 13 4
Sundin 37 18 16
Koivu 21 15 5
Morrison 25 17 6
Lang 22 12 10
Cassels 20 10 9
Weight 15 8 7
Jokinen 36 20 13
Yashin 26 12 14
O_Neill 30 19 11
Damphous 23 8 15
Marchant 20 12 7
White 25 16 8
Nylander 17 10 7
Craig 22 17 5
Roenick 27 18 8
Rucchin 20 1 13
Briere 24 0 15
Zhamnov 15 3 10
Sakic 26 0 18
Nedved 27 3 16
Francis 22 1 13
Elias 28 0 22
Nimetään matriisi kuitenkin pelkäksi NHL:ksi (ts. unohdetaan
sisäinen nimi NHL&1&Y):
MAT NAME NHL AS NHL
Lasketaan otoskovarianssimatriisi S (ks. esim. Patovaara s. 177).
Projektori I-J suorittaa tässä havaintomatriisin keskistyksen.
Mieti miten se tapahtuu, matriisit I ja J on esitelty edellä!
MAT S!=NHL'*(I-J)*NHL
MAT LOAD S
MATRIX S
/// Goals ShortHG EvenSG
Goals 1107.37 740.13 301.10
ShortHG 740.13 1609.87 -472.60
EvenSG 301.10 -472.60 548.30
Koska muuttujien vaihteluvälit ovat hieman erilaisia, ovat
kovarianssitkin melko erisuuruisia. Ei ole suositeltavaa (useinkaan)
lähteä analysoimaan aineistoa kovarianssimatriisin pohjalta.
Niinpä standardoidaan tilanne, ts. siirrytään korrelaatioihin.
Erotetaan kovarianssimatriisin päädiagonaali (siis varianssit)
lävistäjämatriisiksi D. Lasketaan alkioiden neliöjuuret (eli
korotetaan ne potenssiin 0.5) jolloin saadaan keskihajonnat.
Samalla otetaan käänteisluvut näistä (negatiivinen eksponentti).
MAT D=DIAG(S)^(-0.5)
MAT LOAD D
MATRIX D
DIAG(S)^(-0.5)
/// Goals ShortHG EvenSG
Goals 0.030051 0.000000 0.000000
ShortHG 0.000000 0.024923 0.000000
EvenSG 0.000000 0.000000 0.042706
Kerrotaan S tällä lävistäjämatriisilla edestä ja takaa, jolloin
S:n alkiot (kovarianssit) tulevat jaetuiksi vastaavilla
hajonnoilla. Diagonaalille pitäisi silloin tulla ykköset ja
ulkopuolelle välillä [-1,1] olevia lukuja. Katsotaan:
MAT R=D*S*D
MAT LOAD R
MATRIX R
DIAG(S)^(-0.5)*S*DIAG(S)^(-0.5)
/// Goals ShortHG EvenSG
Goals 1.00000 0.55433 0.38642
ShortHG 0.55433 1.00000 -0.50303
EvenSG 0.38642 -0.50303 1.00000
Tarkastetaan tulos Survon CORR-operaatiolla käyttäen NHL-matriisia
havaintoaineistona (siksi tässä ".MAT"):
CORR NHL.MAT / lasketaan keskiarvot, hajonnat ja korrelaatiot
MAT LOAD CORR.M / otetaan näkyville vain korrelaatiomatriisi
MATRIX CORR.M
R(NHL.MAT)
/// Goals ShortHG EvenSG
Goals 1.00000 0.55433 0.38642
ShortHG 0.55433 1.00000 -0.50303
EvenSG 0.38642 -0.50303 1.00000
Eri operaatioiden (kuten CORR) tulosmatriisien nimessä on ".M" perässä,
muuten ne ovat aivan samanlaisia kuin matriisitulkilla tehdyt, ja niitä
voi käsitellä samalla tavalla.)
........................................................................
Korrelaatiot, toinen tapa
Toinen tapa laskea korrelaatiomatriisi perustuu matriisitulkin
erilaisten valmiiden funktioiden käyttöön. Seuraavassa tapahtuu
(sisimmistä suluista lähtien) 1. keskistys (CENTER), 2. normeeraus
(NRM), ja 3. tulosummien laskenta (MTM). Viimeksi mainittu tekee
tilastotieteen sovelluksissa erittäin yleisen "matriisin transpoosin
kerrottuna matriisilla itsellään", siis tyyppiä X'X olevan laskun.
Vastaava operaatio toisinpäin (XX') on MMT, ja muitakin samantyyppisiä
löytyy kyselyllä MAT - B - C.
MAT R=MTM(NRM(CENTER(NHL)))
MAT LOAD R
MATRIX R
NRM(CENTER(NHL))'*NRM(CENTER(NHL))
/// Goals ShortHG EvenSG
Goals 1.00000 0.55433 0.38642
ShortHG 0.55433 1.00000 -0.50303
EvenSG 0.38642 -0.50303 1.00000
CENTER-funktion sivutuotteena syntyy rivivektori MEAN:
MAT LOAD MEAN
MATRIX MEAN
MEAN(NHL)
/// Goals ShortHG EvenSG
Mean 25.23333 12.26667 10.70000
NRM-funktion sivutuotteena syntyy rivivektori NORM:
MAT LOAD NORM
MATRIX NORM
NORM(CENTER(NHL))
/// Goals ShortHG EvenSG
Norm 33.27712 40.12314 23.41581
Skaalaamalla nämä luvut saadaan sarakkeiden keskihajonnat:
MAT NORM=(1/sqrt(n-1))*NORM / n=30
MAT LOAD NORM
MATRIX NORM
(1/sqrt(n-1))*NORM(CENTER(NHL))
/// Goals ShortHG EvenSG
Norm 6.179406 7.450681 4.348206
Verrataan edellä CORR-komennolla saatuihin tuloksiin (CORR tallettaa
myös MSN.M-nimisen matriisin, jossa on keskiarvot, hajonnat ja
havaintojen lukumäärät muuttujittain):
MAT LOAD MSN.M
MATRIX MSN.M
MSN(NHL.MAT)
/// mean stddev N
Goals 25.23333 6.17941 30.00000
ShortHG 12.26667 7.45068 30.00000
EvenSG 10.70000 4.34821 30.00000
Jos halutaan katsella vektoreita samoin päin kuin yllä, voidaan ottaa
tiedot esille vaikkapa näin:
MAT LOAD MSN.M'(mean:stddev,*)
MATRIX MSN.M'
MSN(NHL.MAT)'
/// Goals ShortHG EvenSG
mean 25.23333 12.26667 10.70000
stddev 6.17941 7.45068 4.34821
........................................................................
Muita matriisilaskelmia
Spektraalihajotelma (symmetrisen matriisin pääakseliesitys):
(ks. esim. Patovaara s. 243)
MAT SPECTRAL DECOMPOSITION OF R TO U,L
MAT LOAD L / ominaisarvot (talletettuna pystyvektorina)
MATRIX L
L(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))
/// eigenval
ev1 1.583204
ev2 1.382594
ev3 0.034202
MAT LOAD U / ominaisvektorit
MATRIX U
S(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))
/// ev1 ev2 ev3
Goals 0.52941 -0.62793 0.57047
ShortHG 0.78361 0.10425 -0.61245
EvenSG -0.32510 -0.77126 -0.54723
MAT L=DV(L) / Diagonaalimatriisi Vektorista L
MAT R2=U*L*U' / pääakseliesitys (ULU') (teor. L yleensä Lambda)
MAT EROTUS=R2-R / *EROTUS~... 3*3
MAT LOAD EROTUS
MATRIX EROTUS
...
/// Goals ShortHG EvenSG
Goals 0.00000 0.00000 0.00000
ShortHG 0.00000 0.00000 -0.00000
EvenSG 0.00000 -0.00000 0.00000
Singulaariarvohajotelma:
(ks. esim. Patovaara s. 280)
MAT SVD OF R TO U,D,V
tai
MAT SINGULAR VALUE DECOMPOSITION OF R TO U,D,V
MAT LOAD U / vasemmanpuoleiset singulaarivektorit
MATRIX U
Usvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))
/// svd1 svd2 svd3
Goals 0.52941 0.62793 0.57047
ShortHG 0.78361 -0.10425 -0.61245
EvenSG -0.32510 0.77126 -0.54723
MAT LOAD D / singulaariarvot (talletettuna pystyvektorina)
MATRIX D
Dsvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))
/// sing.val
svd1 1.583204
svd2 1.382594
svd3 0.034202
Huom. Tässä tapauksessa singulaariarvot ja ominaisarvot ovat samat,
koska R on symmetrinen ja positiivisesti definiitti matriisi.
Yleisesti ko. arvot eivät ole samoja (ks. esim. Patovaara s. 282).
MAT LOAD V / oikeanpuoleiset singulaarivektorit
MATRIX V
Vsvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))
/// svd1 svd2 svd3
Goals 0.52941 0.62793 0.57047
ShortHG 0.78361 -0.10425 -0.61245
EvenSG -0.32510 0.77126 -0.54723
MAT D=DV(D) / (vast. kuin edellä)
MAT R2=U*D*V' / singulaariarvohajotelman perusmuoto (UDV')
MAT EROTUS=R2-R / *EROTUS~... 3*3
MAT LOAD EROTUS
MATRIX EROTUS
...
/// Goals ShortHG EvenSG
Goals -0.00000 -0.00000 0.00000
ShortHG -0.00000 0.00000 -0.00000
EvenSG -0.00000 -0.00000 0.00000
Molemmissa hajotelmissa ominais/singulaarivektoreiden matriisit
ovat ortogonaalisia eli rivit/sarakkeet ovat ykkösen mittaisia
ja niiden sisätulot ovat nollia (ts. ne ovat ortonormaalisia).
Ensimmäisen ominaisuuden voi tarkistaa mm. NRM-operaatiolla:
MAT N=NRM(U) / *N~NRM(Usvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))) 3*3
MAT LOAD NORM / vektorien pituudet NORM-matriisissa
MATRIX NORM
NORM(Usvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL))))
/// svd1 svd2 svd3
Norm 1.000000 1.000000 1.000000
MAT N=NRM(V) / *N~NRM(Vsvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))) 3*3
MAT LOAD NORM
MATRIX NORM
NORM(Vsvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL))))
/// svd1 svd2 svd3
Norm 1.000000 1.000000 1.000000
Ortogonaalisuus selviää kätevimmin laskemalla tulosummamatriiseja
U'U, VV' jne., sillä niiden tulisi olla yksikkömatriiseja:
MAT T1=U'*U / *T1~Usvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))'*Usvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL))) S3*3
MAT LOAD T1
MATRIX T1
Usvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))'*Usvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))
/// svd1 svd2 svd3
svd1 1.00000 -0.00000 0.00000
svd2 -0.00000 1.00000 0.00000
svd3 0.00000 0.00000 1.00000
MAT T2=U*U' / *T2~Usvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))*Usvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))' S3*3
MAT LOAD T2
MATRIX T2
Usvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))*Usvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))'
/// Goals ShortHG EvenSG
Goals 1.00000 -0.00000 -0.00000
ShortHG -0.00000 1.00000 -0.00000
EvenSG -0.00000 -0.00000 1.00000
MAT T3=V'*V / *T3~Vsvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))'*Vsvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL))) S3*3
MAT LOAD T3
MATRIX T3
Vsvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))'*Vsvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))
/// svd1 svd2 svd3
svd1 1.00000 -0.00000 -0.00000
svd2 -0.00000 1.00000 -0.00000
svd3 -0.00000 -0.00000 1.00000
MAT T4=V*V' / *T4~Vsvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))*Vsvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))' S3*3
MAT LOAD T4
MATRIX T4
Vsvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))*Vsvd(NRM(CENTER(NHL))'*NRM(CENTER(NHL)))'
/// Goals ShortHG EvenSG
Goals 1.000000 0.000000 0.000000
ShortHG 0.000000 1.000000 0.000000
EvenSG 0.000000 0.000000 1.000000
QR-hajotelma:
(vrt. esim. Patovaara s. 76 ja Gram-Schmidt alla)
Soveltuu myös ei-symmetriselle matriisille kuten tässä alkuperäinen
havaintomatriisi NHL. Tuloksena numeerisen laskennan kannalta
edulliset ortogonaalinen matriisi Q ja yläkolmiomatriisi R:
MAT QR OF NHL TO Q,R
MAT DIM Q /* rowQ=30 colQ=30
MAT DIM R /* rowR=30 colR=3
/MATSHOW Q
/MATSHOW R
MAT NHL2=Q*R / *NHL2~Q(NHL)*R(NHL) 30*3
MAT EROTUS=NHL2-NHL / *EROTUS~Q(NHL)*R(NHL)-NHL 30*3
/MATSHOW EROTUS (15)
Gram-Schmidt-hajotelma:
Vastaavanlainen hajotelma kuin QR, huomaa kuitenkin erot muodostuvien
matriisien dimensioissa.
(ks. esim. Patovaara s. 76)
MAT GRAM-SCHMIDT DECOMPOSITION OF NHL TO S,U
MAT DIM S /* rowS=30 colS=3
MAT DIM U /* rowU=3 colU=3
/MATSHOW S
/MATSHOW U
MAT NHL2=S*U / *NHL2~GS(NHL)*GU(NHL) 30*3
MAT EROTUS=NHL2-NHL / *EROTUS~GS(NHL)*GU(NHL)-NHL 30*3
/MATSHOW EROTUS (15)
Matriisihajotelmat tarjoavat numeerisesti stabiilimpia tapoja laskea
mm. regressioanalyysin tuloksia. Lisäksi hajotelmilla on keskeisiä
tehtäviä muissakin menetelmissä (mm. useat monimuuttujamenetelmät
palautuvat oleellisesti singulaariarvohajotelman laskemiseen).
........................................................................
-------------------------------------------------------------------------------
| 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!