Re: Kilpatehtävä 6 (esimerkki)

[vastaus aiempaan viestiin]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 5.1.2006 15:39

Selventääkseni kilpatehtävän luonnetta näytän tässä esimerkin, jonka
tänään (5.1.2006) olen liittänyt Survon Flash-demojen kokoelmaan
nimellä "Kopiointiprosessi".
Alla on sukron KOPIO listaus ja tämän sukron toiminnan olen tallentanut
ScreenFlash-ohjelmalla.
Tämä esimerkki edellyttää tilastollisten menetelmien ja
matriisilaskennan tuntemista. Tässä suhteessa ei siis aseteta
rajoituksia, mutta vallan hyvin kelpaavat sellaisetkin ratkaisut,
esim. pelkkään tekstinkäsittelyyn liittyvät, joissa ei tarvita
mitään pitkälle menevää erikoisalan hallintaa.
Kuitenkin toivoisin, että jokaisessa ratkaisussa olisi jokin "juju"
eikä pelkkää mekaanista Survon pyöritystä.

-Seppo

Sukron KOPIO (Kopiointiprosessi) listaus:
*TUTSAVE KOPIO
*{tempo -1}{init}{jump 1,1,1,1}SCRATCH {act}{line start}
/
*COLX W20{act}{line start}{erase}{tempo 2}{wait 100}{tempo -1}{R}
/
*   {form7} Kopiointiprosessi {R}
*{R}
*Tarkastellaan satunnaismuuttujia X(1),X(2),...,X(p), jotka määritellään{R}
*p riippumattoman N(0,1)-muuttujan U(1),U(2),...,U(p) avulla seuraavasti:{R}
*X(1)=U(1),{R}
*X(2)=a*U(2)+r*X(1),{R}
*X(3)=a*U(3)+r*X(2),{R}
*...{R}
*X(p)=a*U(p)+r*X(p-1), missä a^2+r^2=1.{R}
*Tällöin myös X-muuttujat ovat jakaumaltaan N(0,1) mutta eivät enää{R}
*riippumattomia. Kyseessä on yksinkertainen autoregressiivinen tilanne.{R}
*Tällöin esim. korrelaatiokerroin r(X(1),X(2))=E[U(1)*(a*U(2)+r*U(1))]{R}
*=E[r*U(1)^2]=r ja (kun i>j) r(X(i),X(j))=E[(a*U(i)+r*X(i-1))*X(j)]{R}
*=E[r*X(i-1)*X(j)]=r*r(X(i-1),X(j)). Tästä on helppo päätellä, että{R}
*yleisesti r(i,j)=r(X(i),X(j))=r^|i-j|.{R}
*Muuttujat X noudattavat siis multinormaalijakaumaa N(0,R).{R}
*Lasketaan yhteiskorrelaatiokertoimia. Tiedetään (kts. esim.{R}
*http://www.survo.fi/mustonen/monim.pdf sivut 23-26), että muuttujan{R}
*X(i) yhteiskorrelaatiokerroin muiden muuttujien suhteen on{R}
*R(i)=sqrt(1-1/t(i,i)), missä t(i,i) on R:n käänteismatriisin T i.{R}
*lävistäjäalkio. On helppo päätellä laskematta mitä on R(1). Mietipäs!{R}
/
*{tempo 2}{wait 200}
/
*{R}{d20}{u21}{tempo -1}.{copy}{R}{R}{tempo 2}{5}{tempo -1}
/
*Tutkitaan korrelaatiomatriisia R, jossa r(i,j)=r^|i-j| tapauksessa{R}
*p=6, r=0.9. Muodostetaan matriisi R matriisitulkilla.{R}
*{R}{tempo 2}
*MAT R=ZER(p,p){act}{5}{R}
*MAT TRANSFORM R BY r^abs(I#-J#){act}{5}{R}
*{R}
*MAT LOAD R{act}{30}{R}
*{d10}Lasketaan matriisin R käänteismatriisi T.{5}{R}
*{d11}{u10}MAT T=INV(R){act}{5}{R}
*MAT LOAD T{act}{30}{R}
*{d17}{u7}{5}{tempo -1}Matriisi T on yksinkertaista muotoa; se on tridiagonaalinen
* ja siinä{R}
*esiintyy nollan lisäksi vain kolme erilaista alkiota. Ne eivät riipu
*{R}
*lainkaan matriisin R dimensiosta,{tempo 2}{30} sillä esim.{R}
*{R}
*MAT T3=INV(R(1:3,1:3)){act}{5}{R}
*MAT LOAD T3{R}
*{d6}{u7}{5}{act}{30}{d9}{u}{tempo -1}eli tapauksessa p=3 saadaan täsmälleen sama raken
*ne ja alkiot.{tempo 2}{30}{R}{d14}{u14}{tempo -1}
/
*Yleisesti, jos T-matriisin vasemman yläkulman 3*3-matriisia merkitään
*{R}
*{R}
*  |a c 0|          |1   r r^2| |a c 0| |1 0 0|{R}
*  |c b c|,     on  |r   1 r  |*|c b c|=|0 1 0|=I{R}
*  |0 c a|          |r^2 r 1  | |0 c a| |0 0 1|{R}
*{R}
*ja tästä saadaan (matriisien kertolaskusääntöä soveltaen){tempo 2}{30}{R}
*{R}
*a=1/(1-r^2)    a={act}{wait 10}{R}
*c=-r*a         c={act}{wait 10}{R}
*b=-c*(1+r^2)/r b={act}{wait 10}{R}
/
*{R}
*{d4}{u4}Muuttujan X(1) yhteiskorrelaatiokerroin R(1) on sqrt(1-1/a)=
*{wait 5}{act}{wait 10}{R}
*eli sama kuin r (miksi?).{wait 10} Muuttujan X(2) vastaava kerroin R(2) on{R}
*suurempi
* eli sqrt(1-1/b)={act}{wait 5}{line end}, yleisesti r*sqrt(2/(1+r^2)).
*{30}{R}
/
*{d10}{u9}{tempo -1}
/
*Monimuuttujamenetelmien kirjassani www.survo.fi/mustonen/monim.pdf{R} 
*käsittelen tätä tilannetta esimerkkinä "kopiointiprosessi" s.23-24.{R}
*Siinä sama jakauma syntyy vaatimalla, että esim. kopioiden{R}
*X(1) ja X(3) osittaiskorrelaatiokerroin tulee nollaksi, kun asetetaan{R}
*välillä oleva kopio X(2) vakioksi (eli eliminoidaan sen vaikutus).{R}
*Tällöin on helppo ymmärtää, että kaikki informaatio X(1):stä "jälki-{R}
*polville" välittyy X(2):n kautta, jolloin R(1)=r(1,2)=r.{R}
*R(2) on suurempi kuin R(1), koska X(2) saa informaatiota sekä "isältään"{R}
*X(1) että "pojaltaan" X(3).{R}
*{form5}Loppu!{end}

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.