[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!