Teema 1: Box-Mülleri algoritm

Järgmises loengus näiteme, et järgnev algoritm võimaldab genereerida koos kaks standardse normaaljaotusega pseudojuhuslikku arvu

Algoritm:

Harjutus 1

Kirjuta kaks funktsiooni, mis etteantud täisarvu \(n\) korral väljastavad \(n\) standardse normaaljaotusega pseudojuhuslkku arvu, kasutades selleks runif käsuga tekitatud Ühtlase jaotusega pseudojuhuslikke arve. Esimene neist funktsioonidest peab kasutama pöördfunktsiooni meetodit, teine aga Box-Müller meetodit. Mõlema katse korral kontrolli histogrammi abil visuaalselt 10000 genereeritud väärtuse vastavust standardsele normaaljaotusele

Harjutus 2

Kirjutada funktsioon, mis kasutaks eelmises harjutuses loodud Box-Mülleri algoritmi abil töötavat generaatorit selleks, et etteantud \(n\) ja \(k\) korral genereerida \(n\) pseudujuhuslikku arvu jaotusest \(\chi^2_k\). Kontrolli Kolmogorov-Smirnovi testi abil juhul \(n=100000,\ k=3\) korral saadud pseudojuhuslike arvude vastavust \(\chi^2_k\) jaotusele.

Teema 2: Mitmemõõtmelise normaaljaotusega juhusliku suuruse simuleerimine

Vaatleme juhusliku vektori lineaarset teisendust kujul \(Y=g(X)\), kus teisendus \(g\) on \(g(\mathbf{x})=A\mathbf{x}+\mathbf{b}\). Eeldame, et \(A\) on pööratav maatriks, siis pöördteisendus on \(g^{-1}(\mathbf{y})=A^{-1}(\mathbf{y}-\mathbf{b})\). Seega on loengus vaadeldud teoreemi kohaselt juhusliku vektori \(Y\) tihedusfunktsiooniks \[f_Y(y)=f_X(A^{-1}(\mathbf{y}-\mathbf{b}))\, \text{abs}(|A^{-1}|).\] Kuna standardse normaaljaotuse korral on tihedusfunktsiooni eksponentfunktsiooni astendajas \(-\frac{1}{2}\mathbf{x}^T\mathbf{x}\), siis pärast teisendust tekib sinna \[-\frac{1}{2}(\mathbf{y}-\mathbf{b})^TA^{-T}A^{-1}(\mathbf{y}-\mathbf{b}).\] Võrreldes seda mitmemõõtmelise normaaljaotuse avaldisega, saame, et tulemus on jaotusega \(N(\mathbf{b},\Sigma)\), kus \(\Sigma=AA^T\).

Algoritm jaotusega \(N(\mu,\Sigma)\) juhusliku suuruse simuleerimiseks \(m\)-mõõtmelisel juhul (\(m\geq 2\))

  1. Leiame \(A\), mille korral \(A\,A^T=\Sigma\)
  2. Genereerime \(m\) sõltumatut jaotusele \(N(0,1)\) vastavat pseudojuhuslikku arvu, mille abil moodustame vektori \(x=(x_1,\ldots,x_m)^T\)
  3. Soovitud jaotusega vektoriks on \(Ax+\mu\)

Sobiva \(A\) leidmise moodused

\[a_{ii}=\sqrt{\sigma_{ii}-\sum_{j=1}^{i-1}a_{ij}^2},\]

\[a_{ki}=\frac{1}{a_{ii}}(\sigma_{ki}-\sum_{j=1}^{i-1}a_{ij}a_{kj}),\ k>i\]

\[a_{ki}=0,\ k<i\]

Harjutus 3

Kirjuta eelnevalt kirjeldatud \(A\) leidmise moodustele vastavad kaks funktsiooni, mis etteantud kovariatsioonimaatriksi \(\Sigma\) korral leiavad sobiva maatriksi \(A\). Kontrolli funktsioonide töö õigsust maatriksi \[\Sigma=\begin{pmatrix}4 & 1 & 2\\ 1 & 5 & -1\\ 2 & -1 & 6\end{pmatrix}\] korral


Vihjed Omaväärtused ja omavektorid saab leida käsuga eigen(), maatriksite korrutamine toimub käsuga %*% ja transponeeritud maatriksi saab leida käsuga t(maatriks).

Harjutus 4

Genereeri mõlemat \(A\) leidmise eeskirja kasutades 200 vektorit jaotusest \(N((3,1)^T,\Sigma)\), kus \[\Sigma =\begin{pmatrix}2 & -1\\ -1 & 4 \end{pmatrix}\] ja kujuta need graafikul. Kas visuaalset on usutav, et tulemused on samast jaotusest?


Vihjed Kasulik on genereerida kõik vajaminevad standardsele normaaljaotusele vastavad punktid korraga nii, et need paigutatakse \(m\times n\) maatriksi tulpadesse. Lisaks on kasuks teadmine, kui R-is liita maatriks ja vektor, siis tekitatakse vektorile vastav sobivamõõtmeline maatriks (täites selle tulpade kaupa vektoris olevate väärtustega) ja siis liidetakse need maatriksid. Vaadelge näiteks käsu matrix(0, nrow=3,ncol=2)+c(1,2,4) tulemust.

Harjutus 5

Vaatleme juhuslikku suurust \(W=|2X-Y+Z|\), kus \((X,Y,Z)\) on normaaljatusega kesväärtusega 0 ja esimeses harjutuses toodud kovariatsioonimaatriksiga. Leida hinnang juhusliku suuruse \(W\) keskväärtuse jaoks, kasutades selleks 100000 pseudojuhuslikku vektorit vaadeldavast jaotusesest. Leida ühtlasi olulise nivoole \(\alpha=0.05\) vastav usaldusintervall leitud hinnangule