Przykład z prawdopodobieństwem
W tym ćwiczeniu przyjrzysz się różnicy między próbkowaniem ze zwracaniem i bez zwracania. Obliczysz prawdopodobieństwo zdarzenia za pomocą symulacji, zmieniając metodę próbkowania, aby zobaczyć, jak wpływa ona na wynik.
Wyobraź sobie miskę pełną kolorowych cukierków – trzy niebieskie, dwa zielone i pięć żółtych. Wylosuj trzy cukierki, jeden po drugim, ze zwracaniem i bez zwracania. Twoim celem jest obliczenie prawdopodobieństwa, że wszystkie trzy cukierki będą żółte.
To ćwiczenie jest częścią kursu
Symulacje statystyczne w Pythonie
Instrukcje do ćwiczenia
- Zdefiniuj
bowljako listę zawierającą trzy niebieskie'b', dwa zielone'g'i pięć żółtych'y'cukierków. - Pobierz próbkę trzech cukierków ze zwracaniem (
sample_rep) i bez zwracania (sample_no_rep). - Dla próbki ze zwracaniem: jeśli w
sample_repnie ma cukierków'b'ani'g', zwiększsuccess_repo jeden. Podobnie zwiększsuccess_no_rep, gdy wsample_no_repnie ma cukierków'b'ani'g'. - Oblicz odpowiednie prawdopodobieństwa jako iloraz liczby sukcesów i liczby iteracji.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Set up the bowl
success_rep, success_no_rep, sims = 0, 0, 10000
bowl = list(____*3 + ____*2 + ____*5)
for i in range(sims):
# Sample with and without replacement & increment success counters
sample_rep = np.random.____(bowl, size=3, replace=____)
sample_no_rep = np.random.____(bowl, size=3, replace=____)
if ('b' not in sample_rep) & ('g' not in sample_rep) :
____
if ('b' not in sample_no_rep) & ('g' not in sample_no_rep) :
____
# Calculate probabilities
prob_with_replacement = ____/sims
prob_without_replacement = ____/sims
print("Probability with replacement = {}, without replacement = {}".format(prob_with_replacement, prob_without_replacement))