Objectifs de mise en forme
Modélisons l'effet du niveau d'activité sur la perte de poids à l'aide de bracelets d'activité modernes. Les jours où vous allez au gym, vous faites en moyenne 15 k pas, et environ 5 k pas autrement. Vous allez au gym 40 % du temps. Modélisons le nombre de pas par jour comme une variable aléatoire de Poisson avec une moyenne \(\lambda\) qui dépend du fait que vous alliez ou non au gym.
Pour simplifier, disons que vous avez 80 % de chances de perdre 1 lb et 20 % de chances de gagner 1 lb lorsque vous dépassez 10 k pas. Les probabilités sont inversées lorsque vous faites moins de 8 k pas. Sinon, les chances de gagner ou de perdre 1 lb sont égales. À partir de ces informations, trouvez la probabilité de perdre du poids sur un mois.
Cette activité fait partie du cours
Simulation statistique en Python
Instructions de l’exercice
- Simulez
stepscomme une variable aléatoire de Poisson pour une journée donnée selon la valeur delam. - Attribuez
probà[0.2, 0.8]sisteps > 10000ou à[0.8, 0.2]sisteps < 8000. Additionnez tous les gains et pertes de poids du mois enregistrés dansw. - Calculez et affichez la fraction des simulations où le poids total pour un mois dans
outcomesest inférieur à 0. Enregistrez-la sousweight_loss_outcomes_fracet utilisez-la pour afficher vos résultats.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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(____))