Weryfikacja hipotezy o równości wartości

advertisement
Instytut Fizyki
Politechniki Łódzkiej
Laboratorium Metod Analizy Danych
Doświadczalnych
Ćwiczenie 2
Generator liczb losowych o
rozkładzie gamma.
Laboratorium Metod Analizy Danych Doświadczalnych Instytutu Fizyki PŁ
Ćwiczenie 2
Generator liczb losowych o rozkładzie gamma.
1. Cel ćwiczenia
Celem tego ćwiczenia jest opracowanie generatora liczb pseudolosowych [1]
podlegających rozkładowi gamma. W ramach tego ćwiczenia należy napisać program w
dowolnym języku programowania i dla dowolnego systemu operacyjnego, program ten ma
generować liczby pseudolosowe (ich ilość należy programowi zadawać, nie powinna być ona
większa niż 500) dla zadanych parametrów rozkładu, następnie przeprowadzać dla
wygenerowanych liczb dwa dowolne testy losowości oraz zapisywać te liczby do zbioru
tekstowego w formie kolumny liczb. Można zastosować dowolną z metod opisanych np. w
pracach [1] i [2].
Do sprawozdania należy dołączyć plik źródłowy programu, plik wykonywalny
programu, niestandardowe biblioteki użyte przy kompilacji programu oraz cztery zestawy
danych dla których przeprowadzono testy losowości (wyniki tych testów i histogramy
sporządzone dla tych zbiorów oraz wypływające z nich wnioski muszą się znaleźć w
sprawozdaniu).
2. Wstęp
Zmienna losowa X podlega rozkładowi gamma z parametrami α i λ oraz dolnym kresem
gęstości prawdopodobieństwa ao , jeżeli gęstość jej rozkładu prawdopodobieństwa wyraża się
wzorem:
⎧ λα
α −1 − λ ( x − ao )
x − ao )
e
dla x > a o
(
⎪
f ( x ) = ⎨ Γ (α )
⎪
dla x ≤ a o
⎩0
gdzie α > 0, λ >0 natomiast funkcja Γ(α) jest funkcją gamma Eulera, która dla argumentów
dodatnich wyrażona jest wzorem:
Γ(α ) =
+∞
∫x
α −1 − x
e dx
0
Wartość przeciętna zmiennej losowej X jest równa:
α
x=
λ
zaś wariancja tej zmiennej losowej jest równa:
σ=
2
α
λ2
Laboratorium Metod Analizy Danych Doświadczalnych Instytutu Fizyki PŁ
Ćwiczenie 2
3. Metoda generowania i testowania rozkładu
Jest wiele sposobów generowania liczb losowych o rozkładzie gamma, jednym z nich
jest następująca metoda: między zmienną losową X1 o gęstości prawdopodobieństwa opisanej
powyższą zależnością a zmienną losową X2, o uproszczonym rozkładzie gamma z gęstością:
⎧ 1 α −1 − x
x e
dla x > 0
⎪
f 2 ( x ) = ⎨ Γ(α )
⎪0
dla x ≤ 0
⎩
zachodzi związek:
1
X1 = X 2 + ao
λ
Ze względu na to program generuje najpierw zmienną o rozkładzie z gęstością f2, po czym
stosując powyższą zależność uzyskuje zmienną o poszukiwanym rozkładzie f.
W dalszej części opisu metody określenie „rozkład gamma” oznaczać będzie „rozkład gamma
z gęstością prawdopodobieństwa f2”.
Dalej korzystamy z własności addytywności tzn. z faktu, że jeżeli zmienne losowe XA i XB są
niezależne i mają rozkłady gamma z parametrami kolejno αA i αB, to zmienna losowa XA + XB
ma rozkład gamma z parametrem αA + αB.
W związku z tym zmienną losową X można przedstawić w postaci X = XI + XII,, gdzie XI ma
rozkład gamma z całkowitym parametrem αI, będącym częścią całkowitą parametru α,
natomiast XII ma rozkład gamma z parametrem αII = α -αI,.
Aby wygenerować zmienną losową XI, należy również skorzystać z własności addytywności
oraz z faktu, że rozkład gamma z parametrem α = 1 jest rozkładem wykładniczym. W
związku z tym aby otrzymać zmienną losową o rozkładzie gamma z całkowitym parametrem
α wystarczy wygenerować α niezależnych zmiennych losowych o rozkładzie wykładniczym
i obliczyć ich sumę.
Zmienne losowe o rozkładzie wykładniczym generuje się metodą odwracania dystrybuanty
Po uproszczeniu można otrzymać poniższy związek:
α
X I = ln ∏ Ri
i =1
gdzie Ri są kolejnymi niezależnymi zmiennymi losowymi o rozkładzie równomiernym na
przedziale (0,1)
Przy generowaniu zmiennej losowej XII należy skorzystać z następującego faktu: jeżeli
zmienna losowa XA ma rozkład gamma z parametrem α +β , zmienna XB ma rozkład beta z
parametrami (α ,β ) i zmienne te są niezależne, to zmienna losowa XII = XAXB ma rozkład
gamma z parametrem α, dla dowolnego β. W tym celu zmienna XII została przedstawiona
jako iloczyn zmiennych XIII i XIV, gdzie XIII ma rozkład gamma z parametrem 1 (rozkład
wykładniczy) natomiast XIV - rozkład beta z parametrami (αII, 1-αII).
Aby wygenerować zmienną losową XIV, należy skorzystać z poniższego algorytmu:
1) Wygenerować zmienną losową U o rozkładzie potęgowym z parametrem αII.
2) Wygenerować zmienną losową V o rozkładzie potęgowym z parametrem 1-αII.
3
Laboratorium Metod Analizy Danych Doświadczalnych Instytutu Fizyki PŁ
Ćwiczenie 2
3) Jeśli U+V>1 powtórzyć operacje 1) i 2). W przeciwnym przypadku obliczyć XIV ze wzoru:
U
X IV =
U +V
Wygenerowany przez program zbiór liczb podlega dwóm dowolnym testom na
losowość, mogą to być na przykład test serii oraz test graficzny.
W teście serii aby określić czy serie występujące w zbiorze są losowe należy obliczyć wartość
średnią, a następnie wszystkim wartością nie większym niż średnia przyporządkować znak
minus, a większym znak plus. Ilość serii Nob. jest równa liczbie zmian znaku powiększonej o
1. Przewidywana ilość serii w zbiorze n liczb losowych dana jest wzorem:
1
N sp = (2n − 1)
3
odchylenie standardowe dla liczby serii jest równe:
(16n − 29)
S=
90
Obliczamy stosunek:
r=
N ob − N sp
S
Jeżeli r < rkr zbiór wygenerowanych licz przeszedł test pomyślnie, jako rkr możemy przyjąć
wartość odczytaną z tablic lub dla zgrubnego oszacowania wartość 2.
Test graficzny przeprowadzamy w następujący sposób: w układzie współrzędnych XY
zaznaczamy punkty, których współrzędnymi są kolejne liczby (Zi, Zi+1) wygenerowane przez
program. Jeżeli punkty te są rozmieszczone równomiernie w kwadracie o wierzchołkach
(Zmin, Zmin), (Zmax, Zmin), (Zmax,Zmax) i (Zmin, Zmax) to zbiór wygenerowanych liczb świadczy o
tym, że rozkład liczb jest równomierny, w przypadku innych rozkładów zestaw przechodzi
pozytywnie test jeśli zachowana jest symetria względem środka tak powstałego kwadratu.
4. Sprawozdanie
W sprawozdaniu przygotowanym w formie elektronicznej lub papierowej nie
zamieszczamy całości lub fragmentów listingu programu, program źródłowy powinien być
natomiast dobrze opisany za pomocą komentarzy. W sprawozdaniu nie zamieszczamy liczb
otrzymanych za pomocą generatora oraz tablic z których korzystamy w ewentualnym teście
losowości, natomiast powinna znaleźć się informacja w postaci odnośnika literaturowego do
tychże. W sprawozdaniu powinny koniecznie znaleźć się poniższe elementy:
4.1. Wstęp teoretyczny
Wstęp teoretyczny powinien zawierać podstawowe informacje na temat generatorów
liczb losowych oraz metody zastosowanej do otrzymania rozkładu będącego przedmiotem
4
Laboratorium Metod Analizy Danych Doświadczalnych Instytutu Fizyki PŁ
Ćwiczenie 2
tego ćwiczenia. Powinny w nim się znaleźć wszystkie wzory stosowane w programie wraz z
objaśnieniami wielkości w nich występujących.
4.2. Dane techniczne
Dane techniczne powinny zawierać spis plików programu oraz plików z testowanymi
danymi taki jak w poniższym przykładzie:
Przykład
Plik:
Rozmiar: Opis:
GenNorm.exe 64 kB Plik wykonywalny. Do skompilowania programu
wykorzystaliśmy kompilator Borland C++ Version
3.1 . Program należy uruchamiać w systemie MSDOS lub w systemach Windows 3.1/3.11/9x.
GenNorm.cpp
GenNorm.obj
hist.h
N01.txt
11 kB
27 kB
7 kB
1,2 kB
N03.txt
600 B
N31.txt
0,3 kB
N32.txt
282 B
Plik z kodem źródłowym programu.
Plik z zapisanymi bibliotekami.
Biblioteka obliczająca i wyświetlająca histogram.
Plik tekstowy z przykładowymi liczbami losowymi
z rozkładu N(0,1). Ilość liczb n = 100.
Plik tekstowy z przykładowymi liczbami losowymi
dla rozkładu N(0,3). Ilość liczb n = 50.
Plik tekstowy z przykładowymi liczbami losowymi
dla rozkładu N(3,1). Ilość liczb n = 20.
Plik tekstowy z przykładowymi liczbami losowymi
dla rozkładu N(3,2). Ilość liczb n = 20.
4.2. Instrukcja obsługi programu
W sprawozdaniu należy umieścić instrukcję obsługi programu pozwalającą na
wygenerowanie liczb przez osobę nie znającą programu i przebiegu testów. Powinien się tu
znaleźć opis formatu zbioru danych zapisywanych przez program oraz objaśnienia
komunikatów wyświetlanych przez program.
Przykład:
W przypadku prawidłowego
zostanie wyświetlony komunikat:
wczytania
danych
Dane zostaly pomyslnie wczytane
W pliku n_pliku.txt znajduje się n liczb
W przypadku gdy wystąpi błąd podczas zapisywania danych,
zostanie wyświetlony komunikat:
Nie mogę utworzyć pliku”
i nastąpi zamknięcie programu.
4.5.Wnioski
5
Laboratorium Metod Analizy Danych Doświadczalnych Instytutu Fizyki PŁ
Ćwiczenie 2
W sprawozdaniu należy zamieścić wyniki testowania programu na podstawie co
najmniej czterech wygenerowanych zbiorów liczb pseudolosowych, przygotowanych za
pomocą generatora. Na podstawie tych wyników testowania należy wysnuć wnioski na temat
przydatności i zakresu stosowalności generatora oraz funkcjonalności Państwa programu.
4.6. Literatura
Spis literatury wykorzystanej przy opracowywaniu sprawozdania oraz pisaniu i
testowaniu programu.
5. Literatura
[1] R. Zieliński, Generatory liczb losowych, WNT, Warszawa 1979.
[2] R. Wieczorkowski, R. Zieliński.: Komputerowe generatory liczb losowych, WNT,
Warszawa 1997.
6
Download