Zacznij terazZacznij za darmo

Cele fitness

Zamodelujmy wpływ aktywności fizycznej na utratę wagi przy użyciu nowoczesnych monitorów aktywności. W dni, gdy chodzisz na siłownię, pokonujesz średnio około 15 000 kroków, a w pozostałe dni – około 5 000. Na siłownię chodzisz w 40% dni. Przyjmijmy, że liczba kroków w danym dniu jest zmienną losową o rozkładzie Poissona ze średnią \(\lambda\) zależną od tego, czy danego dnia odwiedzasz siłownię.

Dla uproszczenia załóżmy, że gdy pokonujesz ponad 10 000 kroków, masz 80% szans na utratę 0,5 kg i 20% szans na przybranie 0,5 kg. Gdy pokonujesz mniej niż 8 000 kroków, prawdopodobieństwa są odwrócone. W pozostałych przypadkach szanse na utratę i przybranie na wadze są równe. Korzystając z tych danych, oblicz prawdopodobieństwo utraty wagi w ciągu miesiąca.

To ćwiczenie jest częścią kursu

Symulacje statystyczne w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zasymuluj steps jako zmienną losową o rozkładzie Poissona dla danego dnia na podstawie wartości lam.
  • Ustaw prob na [0.2, 0.8], jeśli steps > 10000, lub na [0.8, 0.2], jeśli steps < 8000. Zsumuj całkowitą utratę lub przyrost wagi w ciągu miesiąca i zapisz wynik w w.
  • Oblicz i wypisz ułamek symulacji, w których łączna zmiana wagi w miesiącu zapisana w outcomes jest mniejsza od 0. Zapisz wynik jako weight_loss_outcomes_frac i użyj go do wyświetlenia rezultatów.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Simulate steps & choose prob 
for _ in range(sims):
    w = []
    for i in range(days):
        lam = np.random.choice([5000, 15000], p=[0.6, 0.4], size=1)
        ____ = np.random.poisson(____)
        if steps > 10000: 
            prob = ____
        elif steps < 8000: 
            prob = ____
        else:
            prob = [0.5, 0.5]
        w.append(np.random.choice([1, -1], p=prob))
    outcomes.append(sum(w))

# Calculate fraction of outcomes where there was a weight loss
weight_loss_outcomes_frac = ____
print("Probability of Weight Loss = {}".format(____))
Edytuj i uruchom kod