Fitnessdoelen
Laten we modelleren hoe activiteitsniveaus gewichtsverlies beïnvloeden met moderne fitnesstrackers. Op dagen dat je naar de sportschool gaat, zet je gemiddeld zo'n 15k stappen, en anders ongeveer 5k. Je gaat 40% van de tijd naar de sportschool. We modelleren het aantal stappen op een dag als een Poisson-toevalsvariabele met een gemiddelde \(\lambda\) dat afhangt van of je naar de sportschool gaat of niet.
Voor de eenvoud: je hebt 80% kans om 1 lb af te vallen en 20% kans om 1 lb aan te komen wanneer je meer dan 10k stappen zet. De kansen zijn omgedraaid wanneer je minder dan 8k stappen zet. Anders is de kans om 1 lb aan te komen of af te vallen gelijk. Bepaal, gegeven al deze informatie, de kans om in een maand af te vallen.
Deze oefening maakt deel uit van de cursus
Statisticale simulatie in Python
Oefeninstructies
- Simuleer
stepsals een Poisson-toevalsvariabele voor een gegeven dag op basis van de waarde vanlam. - Zet
probop[0.2, 0.8]alssteps > 10000of op[0.8, 0.2]alssteps < 8000. Tel alle in een maand verloren of gewonnen gewicht op inw. - Bereken en print het deel van de simulaties waarbij het totale gewicht voor een maand in
outcomeskleiner is dan 0. Sla dit op alsweight_loss_outcomes_fracen gebruik dat om je resultaten te printen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____))