Fitnessziele
Lass uns modellieren, wie sich Aktivitätslevel mithilfe moderner Fitness-Tracker auf den Gewichtsverlust auswirken. An Tagen, an denen du ins Fitnessstudio gehst, machst du im Schnitt etwa 15.000 Schritte, sonst etwa 5.000 Schritte. Du gehst in 40 % der Fälle ins Gym. Wir modellieren die Schrittzahl pro Tag als Poisson-Zufallsvariable mit einem Mittelwert \(\lambda\), der davon abhängt, ob du ins Gym gehst oder nicht.
Der Einfachheit halber nehmen wir an: Wenn du mehr als 10.000 Schritte machst, hast du zu 80 % die Chance, 1 lb abzunehmen, und zu 20 % die Chance, 1 lb zuzunehmen. Bei weniger als 8.000 Schritten sind die Wahrscheinlichkeiten umgekehrt. Andernfalls ist die Wahrscheinlichkeit, 1 lb zuzunehmen oder abzunehmen, gleich. Bestimme mit all diesen Informationen die Wahrscheinlichkeit, im Laufe eines Monats Gewicht zu verlieren.
Diese Übung ist Teil des Kurses
<Kurs>Statistische Simulation in Python</Kurs>Übungsanweisungen
- Simuliere
stepsals Poisson-Zufallsvariable für einen gegebenen Tag basierend auf dem Wert vonlam. - Setze
probauf[0.2, 0.8], wennsteps > 10000, oder auf[0.8, 0.2], wennsteps < 8000. Summiere den gesamten Gewichtsverlust bzw. -zuwachs eines Monats, gespeichert inw. - Berechne und gib den Anteil der Simulationen aus, in denen das Gesamtgewicht für einen Monat in
outcomeskleiner als 0 ist. Speichere ihn alsweight_loss_outcomes_fracund nutze ihn, um deine Ergebnisse auszugeben.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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(____))