Liczby losowe – metoda odwracania dystrybuanty

Z Henryk Dąbrowski
Przejdź do nawigacji Przejdź do wyszukiwania
06.01.2021



Gęstość prawdopodobieństwa i dystrybuanta

Rozważmy funkcję f(x) określoną na R, nieujemną i całkowalną. Powiemy, że f(x) jest gęstością rozkładu prawdopodobieństwa P, jeżeli dla dowolnego zbioru AR jest

P(A)=Af(x)dx

gdzie P(A) jest prawdopodobieństwem przypisanym zbiorowi A.

Z powyższej definicji wynika natychmiast, że funkcja f(x) musi być unormowana:

+f(x)dx=1


Dystrybuantą gęstości prawdopodobieństwa f(x) nazywamy funkcję:

F(x)=xf(t)dt


Prawdopodobieństwo, że zmienna losowa przyjmie wartość należącą do przedziału [a,b] wynosi:

P(axb)=abf(t)dt=F(b)F(a)



Rozkład równomierny U(a,b)

Rozkładem równomiernym (prostokątnym) nazywamy rozkład prawdopodobieństwa, dla którego gęstość prawdopodobieństwa f(x) jest równa:

f(x)={0dlax<a1badlax[a,b]0dlax>b


Tak zdefiniowany rozkład równomierny będziemy oznaczali U(a,b). Dystrybuanta tego rozkładu jest określona wzorem:

F(x)={0dlax<axabadlax[a,b]1dlax>b


Zbiór liczb należących do rozkładu równomiernego U(0,1) możemy łatwo uzyskać. Przykładowo w arkuszu kalkulacyjnym LibreOffice dostępna jest funkcja LOS(), która zwraca przypadkową liczbę z przedziału [0,1). Pisząc makro mamy dostępną analogiczną funkcję Rnd(). Liczby losowe generowane przez programy komputerowe nazywamy liczbami pseudolosowymi.

Dysponując liczbami losowymi ui należącymi do rozkładu równomiernego U(0,1) możemy łatwo uzyskać liczby losowe xi należące do rozkładu równomiernego U(a,b). Wystarczy skorzystać ze wzoru:

xi=a+(ba)ui


Przykład histogramu rozkładu równomiernego U(0,1) Czytelnik znajdzie w arkuszu kalkulacyjnym: Równomierny



Dystrybuanta odwrotna

Dystrybuanta odwrotna F1(u) przekształca zmienną losową U(0,1) o rozkładzie równomiernym w zmienną losową X o rozkładzie f(x), któremu odpowiada dystrybuanta F(x):

X=F1(U)

Punktowi u[0,1] zostaje przypisany punkt x=F1(u)[a,b]. Granice przedziału [a,b] mogą być w ogólności niewłaściwe.


Przykładowo dystrybuanta odwrotna zmiennej losowej o rozkładzie f(x)=ex, gdzie x[0,+) jest równa F1(x)=log(1x). Zatem wylosowana liczba u1=0.25[0.2,0.3) z rozkładu U[0,1] przejdzie w punkt

x1=log(1u1)=0.125[0.1,0.2)

z rozkładu wykładniczego f(x)=ex. Podobnie liczba u2=0.95[0.9,0.1) przejdzie w punkt

x2=log(1u2)=1.301[1.3,1.4)

Czyli liczby te trafią do innych podprzedziałów, będą zliczane w innych miejscach i utworzą inny histogram. Tak jak to pokazano na rysunku:


Dystrybuanta odwrotna.png


Przykłady histogramów rozkładu równomiernego U(0,1) i wykładniczego f(x)=ex (wygenerowanego z rozkładu równomiernego) Czytelnik znajdzie w arkuszach kalkulacyjnych:

Równomierny
Wykładniczy



Przedstawimy teraz kilka przykładów zastosowania tego faktu.

Rozkład jednomianowy f(x)=(n+1)xn

Rozważmy funkcję gęstości prawdopodobieństwa postaci:

f(x)={0dlax<0(n+1)xndlax[0,1]0dlax>1


Łatwo sprawdzamy, że

+f(t)dt=01f(t)dt=(n+1)01tndt=tn+1|01=1


Dystrybuanta

F(x)={0dlax<0xn+1dlax[0,1]1dlax>1


Dystrybuanta odwrotna

F1(x)=xn+1

Jeżeli uiU(0,1), to liczby xi=uin+1[0,1] będą należały do rozkładu f(x)=(n+1)xn określonego na odcinku [0,1].


Krzywa opisująca histogram

Załóżmy, że:

  • wygenerowaliśmy N liczb losowych uiU(0,1)
  • obliczyliśmy wartości xi=uin+1
  • podzieliliśmy przedział zmienności liczb xi (w naszym przypadku [0,1]) na podprzedziały każdy o ustalonej szerokości Δ
  • pogrupowaliśmy xi w poszczególnych podprzedziałach i wyznaczyliśmy ilość g(k) liczb xi w k-tym podprzedziale


Jakiej zależności g(k) należy się spodziewać? Prawdopodobieństwo tego, że zmienna losowa przyjmie wartość z k-tego przedziału o szerokości Δ wyraża się wzorem:

P((k1)ΔxikΔ)=(k1)ΔkΔf(t)dtf(kΔ)Δ

Przybliżenie jest tym lepsze, im mniejsza jest szerokość przedziałów Δ. Należy zatem oczekiwać zależności:

g(k)=Nf(kΔ)Δ=NΔf(kΔ)


Dla rozkładu jednomianowego na odcinku [0,1] otrzymamy:

g(k)=Nf(kΔ)Δ=N(n+1)(kΔ)nΔ=(n+1)NΔn+1kn


Przykład dla n=1 i n=2

Niech N=105, Δ=0.01

dla n=1: g(k)=20k

dla n=2: g(k)=0.3k2


Przykłady histogramów rozkładu jednomianowego f(x)=(n+1)xn, dla n=1,2 Czytelnik znajdzie w arkuszach kalkulacyjnych:

Jednomianowy (n = 1)
Jednomianowy (n = 2)



Rozkład postaci f(x)=32x

Rozważmy następującą funkcję gęstości prawdopodobieństwa:

f(x)={0dlax<032xdlax[0,1]0dlax>1

Czytelnik łatwo sprawdzi, że:

+f(t)dt=1


Dystrybuanta

F(x)={0dlax<0x3/2dlax[0,1]1dlax>1


Dystrybuanta odwrotna

F1(x)=x2/3

Jeżeli uiU(0,1), to liczby xi=(ui)2/3 będą należały do rozkładu f(x)=32x określonego na odcinku [0,1].


Krzywa opisująca histogram

g(k)=Nf(kΔ)Δ=N32kΔΔ=32NΔ3/2k

Dla N=105, Δ=0.01 otrzymujemy: g(k)=150k


Przykład histogramu rozkładu postaci f(x)=32x Czytelnik znajdzie w arkuszu kalkulacyjnym: Pierwiastek



Rozkład postaci f(x)=12ax

Dla a>0 określamy następującą funkcję gęstości prawdopodobieństwa:

f(x)={0dlax012axdlax(0,a]0dlax>a

Czytelnik łatwo sprawdzi, że:

+f(t)dt=1


Dystrybuanta

F(x)={0dlax<0xadlax[0,a]1dlax>a


Dystrybuanta odwrotna

F1(x)=ax2

Jeżeli uiU(0,1), to liczby xi=aui2[0,a] będą należały do rozkładu f(x)=12ax określonego na odcinku (0,a].


Krzywa opisująca histogram

g(k)=Nf(kΔ)Δ=N12akΔΔ=NΔ2a1k


Dla a=25, N=105, Δ=0.25 otrzymujemy: g(k)=5000k


Przykład histogramu rozkładu postaci f(x)=110x określonego na odcinku (0,25] Czytelnik znajdzie w arkuszu kalkulacyjnym: Odwrotność pierwiastka



Rozkład wykładniczy f(x)=λeλx

Dla rozkładu wykładniczego funkcja gęstości prawdopodobieństwa jest określona następująco:

f(x)={0dlax<0λeλxdlax0

gdzie λ>0.


Dystrybuanta

F(x)={0dlax<01eλxdlax0


Dystrybuanta odwrotna

F1(x)=1λlog(1x)

Jeżeli uiU(0,1), to liczby xi=1λlog(1ui) będą należały do rozkładu wykładniczego f(x)=λeλx określonego na półprostej [0,+).


Krzywa opisująca histogram

g(k)=NλeλkΔΔ=NΔexp((λΔ)k)

Dla λ=1 oraz N=105, Δ=0.1 otrzymujemy: g(k)=10000e0.1k


Przykład histogramu rozkładu wykładniczego f(x)=ex Czytelnik znajdzie w arkuszu kalkulacyjnym: Wykładniczy



Rozkład normalny N(μ,σ2)

Rozkładem normalnym nazywamy rozkład, dla którego funkcja gęstości prawdopodobieństwa ma postać:

f(x)=1σ2πexp((xμ)22σ2)

gdzie μR i σ>0.


Dystrybuanta

F(x)=xf(t)dt=1πxμσ2eu2du=1π0eu2du+1π0xμσ2eu2du

Ponieważ

1π0eu2du=12

to

F(x)=12(1+erf(xμσ2))

Funkcję erf(x) nazywamy funkcją błędu Gaussa i jest to funkcja nieelementarna:

erf(x)=2π0xet2dt

Łatwo można pokazać, że erf(x) jest funkcją nieparzystą:

erf(x)=erf(x)


W arkuszu LibreOffice erf(x) jest dostępna pod nazwą FUNKCJA.BŁ.DOKŁ(). Dostępna jest też komplementarna funkcja błędu erfc(x)=1erf(x) pod nazwą KOMP.FUNKCJA.BŁ.DOKŁ(). Funkcja odwrotna funkcji erf(x) również nie jest elementarna. Dlatego uzyskanie liczb xiN(μ,σ2) na bazie liczb uiU(0,1) wymaga nieco innego podejścia.


Metoda Boxa - Mullera

Zamiast jednej zmiennej losowej o standardowym rozkładzie normalnym N(0,1), rozważmy dwie niezależne zmienne losowe o takim rozkładzie. Funkcja gęstości prawdopodobieństwa dla takiej pary niezależnych zmiennych losowych będzie iloczynem gęstości prawdopodobieństwa tych funkcji:

f(x,y)=f(x)f(y)=12πex2/212πex2/2=12πe(x2+y2)/2


Przechodząc do współrzędnych biegunowych

{x=rcos(φ)y=rsin(φ)


gdzie r0 i φ[0,2π), otrzymujemy:

f(r,φ)=12πer2/2


Funkcję gęstości prawdopodobieństwa f(r,φ) możemy zapisać w postaci iloczynu:

f(r,φ)=g(r)h(φ)


Widzimy, że h(φ)=12π=const jest unormowaną funkcją gęstości prawdopodobieństwa zmiennej φ. Oznacza to, że rozkład φ jest rozkładem równomiernym U(0,2π), a liczba φ może być zapisana w postaci φ=2πu, gdzie u jest liczbą z równomiernego rozkładu U(0,1).


Iloczyn dystrybuant G(r)H(φ) jest określony całką we współrzędnych biegunowych:

G(r^)H(φ^)=0r^0φ^g(r)h(φ)rdrdφ=0r^g(r)rdr0φ^h(φ)dφ


Zatem dystrybuanta G(r^) jest równa:

G(r^)=0r^g(r)rdr=0r^er2/2rdr=er2/2|0r^=1er^2/2

Całkę nieoznaczoną er2/2rdr=er2/2 wyliczamy dokonując podstawienia t=r2/2.


Wracając do zmiennej r, mamy:

G(r)=1er2/2


Łatwo znajdujemy dystrybuantę odwrotną:

G1(r)=2log(1r)


Jeżeli viU(0,1), to liczby 2log(1vi) będą należały do rozkładu prawdopodobieństwa odpowiadającego funkcji g(r).


Zatem parze liczb u,vU(0,1) odpowiadają liczby φ,r

{φ=2πur=2log(1v)

z rozkładów opisywanych funkcjami gęstości h(φ) i g(r), a tym liczbom odpowiada para liczb x,y

{x=2log(1v)cos(2πu)y=2log(1v)sin(2πu)

które należą do standardowych rozkładów normalnych N(0,1).


Wnioski

Jeżeli u,vU(0,1), to liczby

{x=2log(1u)cos(2πv)y=2log(1u)sin(2πv)

będą należały do standardowego rozkładu normalnego N(0,1).


Uogólniając postępowanie z poprzedniego punktu, można łatwo pokazać, że jeżeli u,vU(0,1), to liczby

{x=μ+σ2log(1u)cos(2πv)y=μ+σ2log(1u)sin(2πv)

będą należały do rozkładu normalnego N(μ,σ2).


Przykład histogramu rozkładu normalnego f(x)=12πex2 Czytelnik znajdzie w arkuszu kalkulacyjnym: Normalny