Fitness cíle
Pojďme si nasimulovat, jak úroveň aktivity ovlivňuje hubnutí pomocí moderních fitness náramků. V dnech, kdy chodíš do posilovny, ujdeš průměrně 15 000 kroků, jinak přibližně 5 000. Do posilovny chodíš ve 40 % případů. Počet kroků za den budeme modelovat jako Poissonovu náhodnou proměnnou se střední hodnotou \(\lambda\), která závisí na tom, zda jdeš do posilovny, nebo ne.
Pro zjednodušení předpokládejme, že při více než 10 000 krocích je 80% šance na úbytek 0,5 kg a 20% šance na přírůstek 0,5 kg. Při méně než 8 000 krocích jsou pravděpodobnosti obrácené. Jinak je šance na přírůstek nebo úbytek 0,5 kg stejná. Na základě těchto informací zjisti pravděpodobnost, že za měsíc zhubnete.
Toto cvičení je součástí kurzu
Statistické simulace v Pythonu
Pokyny k cvičení
- Nasimuluj
stepsjako Poissonovu náhodnou proměnnou pro daný den podle hodnotylam. - Nastav
probna[0.2, 0.8], pokudsteps > 10000, nebo na[0.8, 0.2], pokudsteps < 8000. Sečti celkový přírůstek nebo úbytek hmotnosti za měsíc uložený vw. - Vypočítej a vypiš podíl simulací, kde celková změna hmotnosti za měsíc v
outcomesje menší než 0. Ulož ho jakoweight_loss_outcomes_fraca použij ho k výpisu výsledků.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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(____))