フィットネス目標
最新のフィットネストラッカーを使って、活動量が体重減少にどう影響するかをモデル化しましょう。ジムに行く日は平均1万5千歩、行かない日は平均5千歩です。ジムに行く確率は40%とします。1日の歩数は、ジムに行くかどうかによって平均 \(\lambda\) が変わるポアソン分布に従うと仮定します。
単純化のため、1日の歩数が1万歩を超えると80%の確率で1ポンド減り、20%の確率で1ポンド増えるとします。8千歩未満の場合は確率が逆になります。それ以外の場合は、1ポンド増える確率と減る確率が同じとします。これらの情報に基づいて、1か月で体重が減る確率を求めてください。
この演習はコースの一部です
Pythonで学ぶ統計シミュレーション
演習の手順
- 与えられた
lamの値に基づいて、その日のstepsをポアソン分布の乱数としてシミュレーションします。 steps > 10000のときはprobを[0.2, 0.8]、steps < 8000のときは[0.8, 0.2]に設定します。1か月分の増減をwに蓄積して合計します。outcomesに保存された1か月の合計体重が0未満となるシミュレーションの割合を計算して出力します。weight_loss_outcomes_fracに保存し、その値を使って結果を表示してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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(____))