Komputerowe modelowanie
wielkości losowych
Zmienna losowa o rozkładzie jednostajnym (równomiernym)
Podstawowym pytaniem przed rozpoczęciem losowania jest z jakim rozkładem chcemy
otrzymywad wyniki. Dwa najpopularniejsze to rozkład normalny N(0,1) oraz jednostajny U(0,1).
U(0,1)
Uniform - Rozkład równomierny na odcinku od 0 do 1
N(0,1)
Rozkład normalny o wartości oczekiwanej równej 0 oraz wariancji równej 1
Rozkład normalny jest ważny, ponieważ wyjątkowo często występuje w przyrodzie:
„Jeśli jakaś wielkośd jest sumą lub średnią bardzo wielu drobnych losowych czynników, to niezależnie od rozkładu
każdego z tych czynników, jej rozkład będzie zbliżony do normalnego”
Rozkład jednostajny natomiast jest bardzo prosty do uzyskania, często wykorzystywany,
a ponadto pozwala na odtworzenie praktycznie dowolnego innego rozkładu.
W typowym środowisku programistycznym dostępny się generator jednostajny. Jeżeli jednak
by nie było lub chcielibyśmy poznad zasadę działania takiego generatora, oto przykład:
Algorytm tworzenia ciągu liczb pseudolosowych:
1. Pierwsza liczba jest wybierana zewnętrznie (Np. za pomocą polecenia cputime).
2. Kolejne liczby obliczane są jako x
i+1
=f(x
i
)
Aby wygenerowad w ten sposób liczby z przedziału 0 do k wykorzystywany jest LCG
(Linear Congruential Generator), dla którego:
X
n+1
= (a
×
X
n
+ c) mod m
a – mnożnik; c- przyrost; m - moduł
Aby wygenerowad w ten sposób liczby z przedziału (0,1) to stosujemy piłę (tak jak na
pierwszych laboratoriach, które prowadził dr Wachel).
Ponieważ liczby generowane w ten sposób są jedynie pseudolosowe, tak naprawdę tworzą one
powtarzalny ciąg. Sztuka polega na tym, aby tak dobrad współczynniki, aby nie dało się
przewidzied kolejnej liczby. Nie warto zagłębiad się w sposób doboru współczynników - istotne
jest tutaj, czy liczby są względnie pierwsze.
A Symulacja dyskretnych zmiennych losowych
Ustalamy liczby x
1
, x
2
, … , x
i
, … , x
n
które przyjmą wartości wylosowane
Ustalamy przedziały p
1
, p
2
, … , p
i
, … p
n
odpowiadają one prawdopodobieostwom (p
n
=1)
Losujemy liczbę z rozkładem U(0,1)
Jeżeli wpadnie ona do przedziału *p
i
, p
i+1
], to przyjmujemy wartośd x
i
Komputerowe modelowanie wielkości losowych
2
Przykład:
Wartośd X
-1
0
1
Prawdopodobieostwo 0.3 0.6 0.1
Czyli przedziały są takie: p
0
=0; p
1
=0.3; p
2
=0.9; p
3
=1
Losujemy: 0.800 0.141 0.849 0.035 0.655 0.959 0.792 0.115 0.421 0.433
Wynik:
0
-1
0
-1
0
+1
0
-1
0
0
B Symulacja ciągłych zmiennych losowych
B1 Metoda odwracania dystrybuanty (inwersyjna)
Algorytm:
1) Wyznaczenie analitycznej postaci dystrybuanty
2) Zbadanie, czy F(x) jest ściśle rosnąca. (Warunek niezbędny)
3) Wyznaczenie funkcji odwrotnej. Jeżeli F(x)=u, to szukamy funkcji, dla której x=F
-1
(u)
4) Uruchomienie generatora zmiennej losowej U(0,1)
5) Wyznaczenie wartości F
-1
(U)=X
Przykłady:
a) Rozkład wykładniczy (z parametrem λ > 0)
Gęstośd: f(x)=λe
-λx
(x jest nieujemny)
Dystrybuanta: F(x)=𝐹 𝑥 =
𝑓 𝑡 𝑑𝑡 = 1 − 𝑒
−λx
𝑥
0
Inwersja dystrybuanty: 𝐹 𝑥 = 𝑢 => 𝑥 = 𝐹
−1
𝑢 = −
1
λ
ln(−𝑢 + 1)
Losujemy liczbę rozkładem jednostajnym i podstawiamy za u.
b) Rozkład trójkątny na odcinku *0, a+
Takie trzy były jeszcze na wykładzie
c) Rozkład Laplace’a
d) Przybliżony rozkład normalny
Aproksymacja
B2 Metoda odrzucania
Warunki:
Znana jest analityczna postad gęstości f(x)
Dostępna jest pomocnicza zmienna losowa g(x), która będzie ograniczad gęstośd f(x), tj
𝑓 𝑥 ≤ 𝑐 ∙ 𝑔(𝑥)
1) Uruchomid generator zmiennej pomocniczej o gęstości g(x)
2) Wyznaczyd f(x), g(x), c g(x)
3) Uruchomid generator U(0,1)
4) Dla otrzymanego U wynaczyd iloczyn c g(x) U
5) a) jeżeli c g(x) U=< f(x) akceptujemy
b) jeżeli c g(x) U> f(x) odrzucamy
Komputerowe modelowanie wielkości losowych
3
Estymacje
plik A1 Estymatory
Modelowanie (rekonstrukcje) rozkładów zmiennych losowych
Dyskretna (binarna) zmienna losowa
𝐼 𝑋
𝐾
≤ 𝑥 =
1 𝑔𝑑𝑦 𝑋
𝐾
≤ 𝑥 𝑧𝑎𝑐𝑜𝑑𝑧𝑖
0 𝑔𝑑𝑦 𝑋
𝐾
≤ 𝑥 𝑛𝑖𝑒 𝑧𝑎𝑐𝑜𝑑𝑧𝑖
A Rekonstrukcja dystrybuanty – empiryczna dystrybuanta
𝐹
𝑁
𝑥 =
#{𝑋
𝐾
≤ 𝑥}
𝑁
=
1
𝑁
#{𝑋
𝐾
≤ 𝑥} =
1
𝑁
𝐼{𝑋
𝐾
≤ 𝑥}
𝑁
𝑘=1
B Rekonstrukcja gęstości rozkładu prawdopodobieństwa –
empiryczna gęstość
B1 Histogram
𝑓
𝑁
𝑥 =
𝐹
𝑁
𝑥 + − 𝐹
𝑁
(𝑥)
=
#{𝑋
𝐾
≤ 𝑥 + } − #{𝑋
𝐾
≤ 𝑥}
𝑁
=
#{𝑥 < 𝑋
𝐾
≤ 𝑥 + }
𝑁
=
1
𝑁
𝐼{𝑥 < 𝑋
𝐾
≤ 𝑥 + }
𝑁
𝑘=1
− 𝑚𝑎ł𝑒; > 0; # − 𝑖𝑙𝑜ść
B3 Estymator ortogonalny
O tym nawet nie ma co wspominad – ewentualnie że istnieje.
B3A Reprezentacja wektora w bazie ortogonalnej
B3B Reprezentacja funkcji w przestrzeni funkcyjnej
B2 Estymator jądrowy (uogólnienie histogramu)
Przekształcając
histogram
otrzymujemy:
𝑓
𝑁
𝑥 =
1
𝑁
𝐼 𝑥 < 𝑋
𝐾
≤ 𝑥 +
𝑁
𝑘=1
=
1
𝑁
𝐼 0 < 𝑋
𝐾
− 𝑥 ≤ =
𝑁
𝑘=1
1
𝑁
𝐼 0 <
𝑋
𝐾
−𝑥
≤ 1 =
𝑁
𝑘=1
1
𝑁
𝐼 −1 ≤
𝑥−𝑋
𝐾
< 0
𝑁
𝑘=1
Po symetryzacji: 𝑓
𝑁
(𝑥) =
1
𝑁
𝐼 −
1
2
≤
𝑥−𝑋
𝐾
<
1
2
𝑁
𝑘=1
=
1
𝑁
𝐾(
𝑥−𝑋
𝐾
)
𝑁
𝑘=1
K - funkcja jądra. Przypisuje ona jednakowe „wagi” wszystkim obserwacjom z h-otoczenia
punktu „x”. Przykładowe funkcje jądra:
Komputerowe modelowanie wielkości losowych
4
Jądro prostokątne (okno Parzena)
Jądro trójkątne
Jądro kwadratowe
Jądro Gaussa
Jądro Cauchy’ego
Dowolna parzysta funkcja gęstości prawdopodobieostwa, całkowalna z kwadratem