開始使用免費開始

健身目標

讓我們用現代健身追蹤器來模擬活動量如何影響體重變化。當你去健身房的日子,你平均大約走 15k 步,否則大約是 5k 步。你有 40% 的時間會去健身房。把一天的步數視為一個 Poisson 隨機變數,其平均數 \(\lambda\) 會依你是否去健身房而改變。

為了簡化,當你一天超過 10k 步時,有 80% 機率減少 1lb、20% 機率增加 1lb;當少於 8k 步時,機率相反。其他情況下,增加或減少 1lb 的機率各半。根據以上資訊,找出一個月內體重下降的機率。

本練習屬於課程

Python 的統計模擬

檢視課程

練習說明

  • 依據 lam 的值,將某一天的 steps 以 Poisson 隨機變數方式模擬。
  • steps > 10000,將 prob 設為 [0.2, 0.8];若 steps < 8000,設為 [0.8, 0.2]。把一個月內儲存在 w 的增減體重加總。
  • 計算並印出在 outcomes 中,一個月總體重小於 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(____))
編輯並執行程式碼