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
Statistische Simulation in Python
Anleitung zur Übung
- 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 Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(____))