• Nie Znaleziono Wyników

Zajęcia35listopada2021 DyskretnepróbkowanieDorotaCelińska-Kopczyńska Rachunekprawdopodobieństwaistatystyka

N/A
N/A
Protected

Academic year: 2021

Share "Zajęcia35listopada2021 DyskretnepróbkowanieDorotaCelińska-Kopczyńska Rachunekprawdopodobieństwaistatystyka"

Copied!
14
0
0

Pełen tekst

(1)

Rachunek prawdopodobieństwa i statystyka

Dyskretne próbkowanie

Dorota Celińska-Kopczyńska

Uniwersytet Warszawski

Zajęcia 3 5 listopada 2021

(2)

Idea zajęć – co i po co będziemy robić?

I Podczas poprzednich zajęć próbkowaliśmy mając znane prawdopodobieństwa

I Wykorzystaliśmy sumy prefiksowe i wyszukiwanie binarne I Próbkowanie, tworzenie symulacji jest kluczowym elementem

warsztatu statystyka (generalizacja!)

I Niestety, kod służący do losowania jest wąskim gardłem całego programu

I Podczas dzisiejszych zajęć będziemy starać się usprawnić losowania (techniki o złożoności O(1))

(3)

Problem 2a

Rozważamy problem próbkowania mając znane

prawdopodobieństwa p1, p2, . . . , pd. Załóżmy, że mamy gotową maszynkę, który pozwala nam losować z prawdopodobieństw q1, q2, . . . , qd, takich, które są bliskie p1, p2, . . . , pd:

i =1,...,n(1 − ε)qi ¬ pi ¬ (1 + ε)qi.

I Jak wykorzystać ten gotowy kod, żeby próbkować z prawdopodobieństw p?

I Przedyskutuj poprawność algorytmu

I Popraw rozwiązanie Zadania 1c, wykorzystując omówione podejście

(4)

Czym się zajmujemy (?)?

I Pracujemy z dwoma dyskretnymi zmiennymi losowymi: P i Q.

I Znamy rozkłady zarówno dla P jak i Q, dla Q I Maszynka (bez

dostępnych szczegółów) pozwala losować

z rozkładu Q 0

10 20 30 40

2 4 6

p

count

A

0 20 40 60

2 4 6

q

count

B

0 20 40 60

1 2 3 4 5 6 value

count

var p q C

(5)

Jak będziemy to robić?

I Wykorzystujemy fakt, że prawdopodobieństwa p są niższe niż q

I Losujemy z rozkładu Q wartość R

I Losujemy wartość zmiennej losowej X (rozkład jednostajny) I Jeśli X < p(R), wartość zwracamy, w przeciwnym przypadku

powtarzamy losowanie

(6)

Wniosek?

Wykorzystana procedura zaimplementowana z wykorzystaniem standardowej składni Pythona jest bardzo wolna... zyskaliśmy niewiele w porównaniu do rozwiązania poprzedniego zadania.

Czy nie da się tego poprawić?

(7)

Problem 2b – zadanie zaliczeniowe do 3.12.2021 23:59

Popraw rozwiązanie Zadania 2a, tak, żeby liczba wykonywanych pętli została zminimalizowana. Wykorzystaj wektoryzację. Użyj samplera do rozwiązania problemu urodzinowego (wynikiem może być np. histogram).

(8)

Biblioteka numpy

I Biblioteka numpy umożliwia korzystanie z optymalizowanej algebry tablic (tablice zachowują się jak tablice w C;

zoptymalizowano pod nie operacje)

I Na tablicach numpy możemy wykonywać obliczenia i porównania

I Możemy wygenerować w jednym kroku całą tablicę numpy liczb losowych

I Można wykorzystać tablice numpy jako indeksowanie dla innej tablicy numpy

import numpy as np X = np.array([10,3,7]) I = np.array([1,1,2,2]) print(X[I])

(9)

Porównanie rozwiązań

while:

R = rand(0, n-1) X = rand(0, M-1) if X < p[R]:

return R

R = np.random.randint(0, n-1, N) X = np.random.randint(0, M-1, N) return R[X < p[R]]

(10)

R[X < p[R]]

Podana linijka zawiera trzy kroki:

1. Indeksowanie tablicy p za pomocą wartości tablicy R 2. Porównanie parami wszystkich wartości tablic X i p[R] –

zwraca tablicę booli

3. Indeksowanie tablicy R tablicą booli (filtrowanie)

(11)

Oczekiwany rezulat

(12)

Problem 2c

W tym problemie ponownie będziemy próbkować ze znanych prawdopodobieństw p1, p2, . . . , pn, tylko tym razem bez dodatkowych założeń odnośnie pi.

Zaimplementuj metodę Alias. Wykorzystaj wektoryzację (numpy where). Zastosuj tę metodę do problemu paradoksu urodzinowego (wynikiem działania całego programu powinien być histogram).

(13)

Metoda alias

I Niech V będzie średnią wartością z pi, czyli M = 1n

I Stwórz n kubełków, każdy o pojemności V , włóż każde pi do osobnego kubełka

I Póki istnieje kubełek A, który nie jest pełny, znajdź kubełek B, który jest przepełniony i przenieś prawdopodobieństwo z B do A, aż do zapełnienia kubełka A

I Mając zapełnione kubełki losujemy jeden z nich. Losujemy wartość X z rozkładu jednostajnego i porównujemy, którą z wartości w kubełku zwrócić

(14)

Metoda alias – przykład

I Wartości, którymi wypełniamy kubełki pochodzą z pliku I Ten algorytm zawsze zostanie ukończony

I Gdy się zakończy każdy z kubełków będzie zawierać dwie wartości (druga może być zerowa)

Cytaty

Powiązane dokumenty

06 wzorzec klasy - lista dynamiczna na podstawie drzewa binarnego 07 program, dla badań genetycznych (drzewo podobieństwa DNA) 08 program, badający efektywność

Choć niniejsza książka jest poświęcona antropologii Franza Boasa, to w pewnych fragmentach zamiast nazwiska Boas w myślach podstawiałam nazwiska Malinowski czy Bastian, zamiast

pozwoli nam weryfikować, czy rozkład zmiennej jest zgodny z zadanym teoretycznych rozkładem, a drugą, która pozwoli odpowiedzieć na pytanie, czy pomiędzy zmiennymi

(Mogą Państwo sprawdzić sobie wyniki korzystając z gotowej implementacji, jednak w oddanym zadaniu konieczne jest samodzielne zaimplementowanie

wcięcie (z lewej strony lub obustronne) tekst normalny, tekst normalny, tekst normalny, tekst normalny, tekst normalny, tekst normalny. tekst wyróżniony, tekst wyróżniony,

‡ Szczególnie użyteczne gdy rekurencja opisuje algorytm typu “dziel i zwyciężaj”.. ‡ Za wartość (n/b) przyjmujemy

Rekurencja opisuje czas działania algorytmu, który dzieli problem rozmiaru n na a problemów, każdy rozmiaru n/b, gdzie a i b są dodatnimi stałymi.. Rozwiązanie rekurencji zależy

Tak oto opowiadając się na etapie pierwszego z trzech wymienionych pytań za jednym z dwu opozycyjnych ujęć roli sumienia wobec normy Hu- manae vitae - opowiadamy się