Träningsmål
Nu ska vi modellera hur aktivitetsnivåer påverkar viktnedgång med hjälp av moderna aktivitetsspårare. På dagar när du tränar på gymmet tar du i genomsnitt 15 000 steg, och annars ungefär 5 000 steg. Du tränar på gymmet 40 % av dagarna. Vi modellerar antalet steg per dag som en Poisson-slumpvariabel med ett medelvärde \(\lambda\) som beror på om du tränar på gymmet eller inte.
För enkelhets skull antar vi att du har 80 % chans att gå ner 1 lb och 20 % chans att gå upp 1 lb när du tar mer än 10 000 steg. Sannolikheterna är omvända när du tar färre än 8 000 steg. Annars är chansen att gå upp eller ned lika stor. Beräkna sannolikheten att gå ned i vikt under en månad utifrån all denna information.
Den här övningen är en del av kursen
Statistisk simulering i Python
Övningsinstruktioner
- Simulera
stepssom en Poisson-slumpvariabel för en given dag baserat på värdet avlam. - Sätt
probtill[0.2, 0.8]omsteps > 10000, eller till[0.8, 0.2]omsteps < 8000. Summera all vikt som förlorats eller vunnits under en månad och lagra resultatet iw. - Beräkna och skriv ut andelen simuleringar där den totala vikten för en månad i
outcomesär mindre än 0. Spara resultatet somweight_loss_outcomes_fracoch använd det för att skriva ut dina resultat.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(____))