ÎncepețiÎncepe gratuit

Obiective de fitness

Să modelăm impactul nivelului de activitate asupra pierderii în greutate folosind trackere moderne de fitness. În zilele în care mergi la sală, faci în medie aproximativ 15.000 de pași, iar în celelalte zile, aproximativ 5.000. Mergi la sală 40% din timp. Să modelăm numărul de pași dintr-o zi ca o variabilă aleatoare Poisson cu media \(\lambda\) dependentă de dacă mergi sau nu la sală.

Pentru simplitate, să presupunem că ai o șansă de 80% să slăbești 1 lb și de 20% să te îngrași cu 1 lb atunci când faci mai mult de 10.000 de pași. Probabilitățile sunt inversate când faci mai puțin de 8.000 de pași. În caz contrar, șansele de a slăbi sau de a te îngrăși sunt egale. Pe baza tuturor acestor informații, calculează probabilitatea de a slăbi într-o lună.

Acest exercițiu face parte din cursul

Simulare statistică în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Simulează steps ca o variabilă aleatoare Poisson pentru o zi dată, în funcție de valoarea lui lam.
  • Setează prob la [0.2, 0.8] dacă steps > 10000 sau la [0.8, 0.2] dacă steps < 8000. Calculează suma tuturor kilogramelor pierdute sau câștigate într-o lună, stocată în w.
  • Calculează și afișează fracția simulărilor în care greutatea totală pe o lună din outcomes este mai mică decât 0. Salvează rezultatul în weight_loss_outcomes_frac și folosește-l pentru a afișa rezultatele.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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(____))
Editează și rulează codul