Nii lihtne kui üldistatud valikumeetod on kasutatavad mitmemõõtmelise juhusliku vektori genereerimiseks, kuid üldjuhul on saavutatav efektiivsus küllalt väike. Vaatleme järgnevalt ainult kahemõõtmelist juhtu. Lihtsa valikumeetodi rakendamiseks on vajalik, et soovitud jaotuse tihedusfunktsioon on nullist erinev ainult ristkülikus \(a_1\leq x_1\leq b_1,\ a_2\leq x_2 \leq b_2\) ning et see tihedusfunktsioon on ülalt tõkestatud arvuga \(c\). Sel juhul saame eeskirja:
Saadud punktid vastavad tihedusfunktsiooniga \(f\) jaotusele ning meetodi efektiivsuseks on \(\frac{1}{c\cdot (b_1-a_1)\cdot(b_2-a_2)}\)
Üldistatud valikumeetod
Eeldame, et oskame genereerida vektorit \((Y_1,Y_2)\), millele vastav tihedusfunktsioon \(g_{Y1,Y_2}\) rahuldab tingimust \[f_{X,Y}(x,y)\leq c\cdot g_{Y1,Y_2}(x,y)\ \forall (x,y)\in \mathbb{R}^2\]
Algoritm on järgmine
Vaatleme koonusekujulise funktsiooniga \[ f(x,y)=\begin{cases} 4-2\sqrt{x^2+y^2},& x^2+y^2\leq 4,\\ 0,& x^2+y^2> 4, \end{cases}\] proportsionaalse tihedusfunktsiooniga juhusliku vektori genereerimist. Genereeri lihtsal valikumeetodiga 200 vektorit sellest jaotusest ja kujuta neid graafikul.
Kasuta üldise valikumeetodi algoritmi eelmises harjutuses kirjeldatud jaotuse genereerimisel, võttes \(y_1\) ja \(y_2\) väärtuste genereerimisel aluseks tingliku standardse normaaljaotuse.
Eeldame, et teame \(X_1\) jaotust, \(X_2\) jaotus tingimusel, et \(X_1\) on antud, \(X_3\) jatust, tingimusel, et \(X_1,X_2\) antud jne. Siis järjest vastavatest jaotustest genereeridest saame punti \((x_1,x_2,\ldots,x_m)\) jaotusest, mille tihedusfunktsion on vastavate tinglike jaotuste tihedusfunktsioonide korrutis.
Kirjuta generaator, mis etteantud \(n\) korral genereeriks \(n\) vektorit \((X,Y)\) tihedusfunktsioonile
\[ f(x,y)=\begin{cases} x\,e^{-xy},& 1\leq x\leq 2,\ y\geq 0,\\ 0&\text{mujal.}\end{cases}\]
vastavast jaotusest. Leia 10000 genereeritud punkti abil juhusliku punkti \((X,Y)\) keskmine kaugus koordinaatide alguspunktis.
Vaatleme pideva juhusliku vektori erijuhtu. Algoritm üldkujul on rakendatav nii pidevatele kui diskreetsetele jaotustele
Algoritm:
Vaatleme erijuhtu, kus ekslemisel uue asukoha määramisel kasutama normaaljaotust
eeldame, et teame soovitud tihedusfunktsiooniga proportsionaalset funktsiooni \(f\)
Algoritm:
Alustuseks vaatleme ühemõõtmelist erijuhtu. Genereeri MH algoritmi abil jada \(x_1,x_2,\ldots,x_n\) juhul \(n=100000\), kui soovitud tihedusfunktsioon on proportsionaalne funktsiooniga \[f(x)=\begin{cases} 0,& x<0,\\ x\,e^{-2x},& x\geq 0, \end{cases}\] kasutades liikumiseks normaaljaotust \(N(x,0.1)\), kus \(x\) on hetkeasukoht. Lähtepunktiks valige \(x_1=1\). Näidata sõltumatute paaride testiga, et jada ei vasta sõltumatutele vaatlustele soovitud jaotusest. Kas osajada, mis vastab \(n_0=100,\ell=100\) läbib eelnevalt kasutatud sõltumatuse testi? Uurige ka visuaalselt vastavust soovitud jatusele.
Sageli on küllalt lihtne kontrollida mingisse ruumipiirkonda kuuluvust, kuid küllalt raske on täpselt kirjeldada vastava piirkonna täpset kuju. Näiteks võib piirkond \(m\)-mõõtmelises ruumis olla defineeritud võrratustega \(a_i \cdot x +d_i\geq 0,\ i=1,\ldots,k,\) kus \(a_i,\ i=1,\ldots,k\) on vektorid, \(\cdot\) tähistab skalaarkorrutist ja \(d_i,\ i=1,\ldots,k\) on reaalarvud. Toodud tingimuste täidetust on iga \(x\) korral lihtne kontrollida, kuid vastavat piirkonda ei ole alati kuigi lihtne kirjeldada.
Eesmärgiks on kirjutada funktsioon, mis etteantud \(n\) korral genereerib \(n\) juhuslikult valitud punkti võrratustega \[\begin{align*} x+0.2y+0.4&\geq 0,\\ 2x-5y+1&\geq 0,\\ -x+2y+3&\geq 0 \end{align*}\] määratud piirkonnast (st tahame valida vastavalt ühtlasele jaotusele selles piirkonnas). Genereeri 1000 punkti selle funktsiooni abil ja kujuta nende paiknemine graafikul.
Eeldame, et suudame genereerida väärtuseid tinglikest jaotustest \[X_i\mid X_1,\ldots,X_{i-1},X_{i+1},\ldots,X_m,\ i=1,\ldots,m\]
Vaatleme Gibbsi meetodi kasutamist selleks, et genereerida punkte funktsiooniga \[ f(x,y,z)=\begin{cases} e^{-x-2y-3z-xyz},& x,y,z\geq 0,\\ 0,& \text{vastasel korral} \end{cases} \] proportsinaalse tihedusfunktsiooniga jaotusest. Küllalt lihtne on veenduda, et kui fikseerida \(y,z\), siis see funktsioon käitub \(x\) jargi nagu eksponentjaotuse \(Exp(1+yz)\) tihedusfunktsioon, kui fikseerida \(x,z\), siis käitub see nagu eksponentjaotuse \(Exp(2+xz)\) tihedusfunktsioon jne. Genereeri Gibbsi meetodiga 100000 punkti ja uuri ´acf` käsuga iga koordinaadi puhul, kui kiiresti lähevad järjestikuste väärtuste autokorrelatsioonid nulli. Kui eesmärgiks on sõltumatute punktide genereerimine, siis millise sammuga võiks tekitatud jadast punkte valida?