เป้าหมายด้านสุขภาพ
มาสร้างโมเดลเพื่อดูว่าระดับกิจกรรมส่งผลต่อการลดน้ำหนักอย่างไร โดยใช้ข้อมูลจากเครื่องติดตามสุขภาพ ในวันที่ไปออกกำลังกายที่ฟิตเนส จะเดินเฉลี่ยประมาณ 15,000 ก้าว และประมาณ 5,000 ก้าวในวันอื่น โดยไปฟิตเนส 40% ของเวลาทั้งหมด ให้สร้างโมเดลจำนวนก้าวต่อวันเป็นตัวแปรสุ่มแบบ Poisson ที่มีค่าเฉลี่ย \(\lambda\) ขึ้นอยู่กับว่าได้ไปฟิตเนสหรือไม่
เพื่อความง่าย สมมติว่าเมื่อเดินได้มากกว่า 10,000 ก้าว จะมีโอกาส 80% ที่น้ำหนักจะลด 1 ปอนด์ และ 20% ที่น้ำหนักจะเพิ่ม 1 ปอนด์ ส่วนเมื่อเดินได้น้อยกว่า 8,000 ก้าว ความน่าจะเป็นจะสลับกัน และในกรณีอื่นจะมีโอกาสเพิ่มหรือลดน้ำหนักเท่ากัน จากข้อมูลทั้งหมดนี้ ให้หาความน่าจะเป็นที่น้ำหนักจะลดลงภายในหนึ่งเดือน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจำลองทางสถิติด้วย Python
คำแนะนำการฝึกหัด
- จำลอง
stepsเป็นตัวแปรสุ่มแบบ Poisson สำหรับแต่ละวัน โดยอิงจากค่าของlam - กำหนด
probเป็น[0.2, 0.8]ถ้าsteps > 10000หรือเป็น[0.8, 0.2]ถ้าsteps < 8000จากนั้นรวมน้ำหนักที่ลดหรือเพิ่มขึ้นตลอดหนึ่งเดือนไว้ใน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(____))